From 5d239307ad1eb6c47f6201f77e49b25e910474ee Mon Sep 17 00:00:00 2001 From: romab Date: Tue, 1 Jan 2019 12:09:10 +0500 Subject: [PATCH] add migration --- migrations/201831231.2049_initial.sql | 91 +++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100755 migrations/201831231.2049_initial.sql diff --git a/migrations/201831231.2049_initial.sql b/migrations/201831231.2049_initial.sql new file mode 100755 index 0000000..fb2307d --- /dev/null +++ b/migrations/201831231.2049_initial.sql @@ -0,0 +1,91 @@ +CREATE TABLE "activity" ( + "id" SERIAL CONSTRAINT "pk_activity" PRIMARY KEY, + "name" TEXT NOT NULL +); + +CREATE TABLE "contact_info" ( + "id" SERIAL CONSTRAINT "pk_contact_info" PRIMARY KEY, + "email" TEXT NOT NULL +); + +CREATE TABLE "enterprise" ( + "id" SERIAL CONSTRAINT "pk_enterprise" PRIMARY KEY, + "name" TEXT NOT NULL, + "short_name" TEXT NOT NULL, + "contact_info" INTEGER NOT NULL +); + +CREATE INDEX "idx_enterprise__contact_info" ON "enterprise" ("contact_info"); + +ALTER TABLE "enterprise" ADD CONSTRAINT "fk_enterprise__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id"); + +CREATE TABLE "division" ( + "id" SERIAL CONSTRAINT "pk_division" PRIMARY KEY, + "enterprise" INTEGER NOT NULL, + "contact_info" INTEGER NOT NULL +); + +CREATE INDEX "idx_division__contact_info" ON "division" ("contact_info"); + +CREATE INDEX "idx_division__enterprise" ON "division" ("enterprise"); + +ALTER TABLE "division" ADD CONSTRAINT "fk_division__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id"); + +ALTER TABLE "division" ADD CONSTRAINT "fk_division__enterprise" FOREIGN KEY ("enterprise") REFERENCES "enterprise" ("id"); + +CREATE TABLE "do_activity" ( + "id" SERIAL CONSTRAINT "pk_do_activity" PRIMARY KEY, + "enterprise" INTEGER, + "activity" INTEGER NOT NULL, + "division" INTEGER +); + +CREATE INDEX "idx_do_activity__activity" ON "do_activity" ("activity"); + +CREATE INDEX "idx_do_activity__division" ON "do_activity" ("division"); + +CREATE INDEX "idx_do_activity__enterprise" ON "do_activity" ("enterprise"); + +ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__activity" FOREIGN KEY ("activity") REFERENCES "activity" ("id"); + +ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__division" FOREIGN KEY ("division") REFERENCES "division" ("id"); + +ALTER TABLE "do_activity" ADD CONSTRAINT "fk_do_activity__enterprise" FOREIGN KEY ("enterprise") REFERENCES "enterprise" ("id"); + +CREATE TABLE "head" ( + "id" SERIAL CONSTRAINT "pk_head" PRIMARY KEY, + "date_of_start" DATE NOT NULL, + "date_of_end" DATE, + "contact_info" INTEGER NOT NULL +); + +CREATE INDEX "idx_head__contact_info" ON "head" ("contact_info"); + +ALTER TABLE "head" ADD CONSTRAINT "fk_head__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id"); + +CREATE TABLE "location" ( + "id" SERIAL CONSTRAINT "pk_location" PRIMARY KEY, + "country" TEXT NOT NULL, + "city" TEXT NOT NULL, + "street" TEXT NOT NULL, + "house" TEXT NOT NULL, + "room" TEXT NOT NULL, + "date_of_start" DATE NOT NULL, + "date_of_end" DATE, + "contact_info" INTEGER NOT NULL +); + +CREATE INDEX "idx_location__contact_info" ON "location" ("contact_info"); + +ALTER TABLE "location" ADD CONSTRAINT "fk_location__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id"); + +CREATE TABLE "phone_number" ( + "id" SERIAL CONSTRAINT "pk_phone_number" PRIMARY KEY, + "contact_info" INTEGER NOT NULL, + "date_of_start" DATE NOT NULL, + "date_of_end" DATE +); + +CREATE INDEX "idx_phone_number__contact_info" ON "phone_number" ("contact_info"); + +ALTER TABLE "phone_number" ADD CONSTRAINT "fk_phone_number__contact_info" FOREIGN KEY ("contact_info") REFERENCES "contact_info" ("id") \ No newline at end of file