· 8 years ago · Apr 14, 2018, 03:58 AM
1
2# --- !Ups
3
4create table user (
5 email varchar(255) not null,
6 name varchar(255),
7 password varchar(255),
8 constraint pk_user primary key (email)
9);
10
11create table project (
12 id bigint not null,
13 name varchar(255),
14 folder varchar(255),
15 constraint pk_project primary key (id)
16);
17
18create table task (
19 id bigint not null,
20 title varchar(255),
21 done boolean,
22 due_date timestamp,
23 assigned_to_email varchar(255),
24 folder varchar(255),
25 project_id bigint,
26 constraint pk_task primary key (id),
27 foreign key (assigned_to_email) references user (email) on delete set null on update restrict,
28 foreign key (project_id) references project (id) on delete cascade on update restrict
29);
30
31create table project_user (
32 project_id bigint not null,
33 user_email varchar(255) not null,
34 constraint pk_project_user primary key (project_id, user_email),
35 foreign key (project_id) references project (id) on delete cascade on update restrict,
36 foreign key (user_email) references user (email) on delete cascade on update restrict
37);
38
39create sequence project_seq start with 1000;
40create sequence task_seq start with 1000;
41
42# --- !Downs
43
44drop table if exists task;
45drop table if exists project_user;
46drop table if exists project;
47drop table if exists user;
48
49drop sequence if exists project_seq;
50drop sequence if exists task_seq;