1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
--
-- Created by SQL::Translator::Producer::PostgreSQL
-- Created on Mon Jan 24 21:25:06 2011
--
;
--
-- Table: project
--
CREATE TABLE "project" (
"projectid" serial NOT NULL,
"name" text NOT NULL,
"url" text NOT NULL,
"description" text NOT NULL,
"owner" text NOT NULL,
PRIMARY KEY ("projectid"),
CONSTRAINT "project_name" UNIQUE ("name")
);
;
--
-- Table: commit_push
--
CREATE TABLE "commit_push" (
"sha256" text NOT NULL,
"content" text NOT NULL,
"projectid" integer NOT NULL,
"timestamp" timestamp NOT NULL,
PRIMARY KEY ("sha256")
);
CREATE INDEX "commit_push_idx_projectid" on "commit_push" ("projectid");
;
--
-- Table: task
--
CREATE TABLE "task" (
"taskid" serial NOT NULL,
"sha256" text NOT NULL,
"projectid" integer NOT NULL,
PRIMARY KEY ("taskid"),
CONSTRAINT "task_projectid" UNIQUE ("projectid"),
CONSTRAINT "task_sha256" UNIQUE ("sha256")
);
CREATE INDEX "task_idx_sha256" on "task" ("sha256");
CREATE INDEX "task_idx_projectid" on "task" ("projectid");
;
--
-- Foreign Key Definitions
--
;
ALTER TABLE "commit_push" ADD FOREIGN KEY ("projectid")
REFERENCES "project" ("projectid") DEFERRABLE;
;
ALTER TABLE "task" ADD FOREIGN KEY ("sha256")
REFERENCES "commit_push" ("sha256") DEFERRABLE;
;
ALTER TABLE "task" ADD FOREIGN KEY ("projectid")
REFERENCES "project" ("projectid") DEFERRABLE;
|