Skip to content

Commit 8c40c1c

Browse files
committed
fix: initialize migrations
1 parent f146743 commit 8c40c1c

File tree

2 files changed

+231
-0
lines changed

2 files changed

+231
-0
lines changed
Lines changed: 228 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,228 @@
1+
-- CreateEnum
2+
CREATE TYPE "SemesterType" AS ENUM ('f', 's', 'u');
3+
4+
-- CreateEnum
5+
CREATE TYPE "TemplateDataType" AS ENUM ('CORE', 'OPTIONAL');
6+
7+
-- CreateTable
8+
CREATE TABLE "TemplateData" (
9+
"id" UUID NOT NULL,
10+
"semester" INTEGER NOT NULL,
11+
"templateId" UUID NOT NULL,
12+
13+
CONSTRAINT "TemplateData_pkey" PRIMARY KEY ("id")
14+
);
15+
16+
-- CreateTable
17+
CREATE TABLE "TemplateItem" (
18+
"id" UUID NOT NULL,
19+
"name" TEXT NOT NULL,
20+
"type" "TemplateDataType" NOT NULL DEFAULT 'CORE',
21+
"templateDataId" UUID NOT NULL,
22+
23+
CONSTRAINT "TemplateItem_pkey" PRIMARY KEY ("id")
24+
);
25+
26+
-- CreateTable
27+
CREATE TABLE "Template" (
28+
"id" UUID NOT NULL,
29+
"name" TEXT,
30+
31+
CONSTRAINT "Template_pkey" PRIMARY KEY ("id")
32+
);
33+
34+
-- CreateTable
35+
CREATE TABLE "Profile" (
36+
"id" UUID NOT NULL,
37+
"name" TEXT NOT NULL,
38+
"startYear" INTEGER NOT NULL,
39+
"startSemester" "SemesterType" NOT NULL,
40+
"endYear" INTEGER NOT NULL,
41+
"endSemester" "SemesterType" NOT NULL,
42+
"userId" UUID NOT NULL,
43+
44+
CONSTRAINT "Profile_pkey" PRIMARY KEY ("id")
45+
);
46+
47+
-- CreateTable
48+
CREATE TABLE "Plan" (
49+
"id" UUID NOT NULL,
50+
"name" TEXT NOT NULL,
51+
"created_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
52+
"updated_at" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
53+
"transferCredits" TEXT[],
54+
"userId" UUID NOT NULL,
55+
"startYear" INTEGER NOT NULL,
56+
"startSemester" "SemesterType" NOT NULL,
57+
"endYear" INTEGER NOT NULL,
58+
"endSemester" "SemesterType" NOT NULL,
59+
60+
CONSTRAINT "Plan_pkey" PRIMARY KEY ("id")
61+
);
62+
63+
-- CreateTable
64+
CREATE TABLE "DegreeRequirements" (
65+
"id" UUID NOT NULL,
66+
"major" TEXT NOT NULL,
67+
"bypasses" TEXT[],
68+
"planId" UUID NOT NULL,
69+
70+
CONSTRAINT "DegreeRequirements_pkey" PRIMARY KEY ("id")
71+
);
72+
73+
-- CreateTable
74+
CREATE TABLE "Bypass" (
75+
"id" UUID NOT NULL,
76+
"courseCode" TEXT NOT NULL,
77+
"requirement" TEXT NOT NULL,
78+
"hours" INTEGER NOT NULL,
79+
80+
CONSTRAINT "Bypass_pkey" PRIMARY KEY ("id")
81+
);
82+
83+
-- CreateTable
84+
CREATE TABLE "Course" (
85+
"id" UUID NOT NULL,
86+
"code" TEXT NOT NULL,
87+
"color" TEXT NOT NULL DEFAULT '',
88+
"semesterId" UUID NOT NULL,
89+
"locked" BOOLEAN NOT NULL DEFAULT false,
90+
"prereqOverriden" BOOLEAN NOT NULL DEFAULT false,
91+
92+
CONSTRAINT "Course_pkey" PRIMARY KEY ("id")
93+
);
94+
95+
-- CreateTable
96+
CREATE TABLE "Semester" (
97+
"id" UUID NOT NULL,
98+
"year" INTEGER NOT NULL,
99+
"semester" "SemesterType" NOT NULL,
100+
"planId" UUID NOT NULL,
101+
"color" TEXT NOT NULL DEFAULT '',
102+
"locked" BOOLEAN NOT NULL DEFAULT false,
103+
104+
CONSTRAINT "Semester_pkey" PRIMARY KEY ("id")
105+
);
106+
107+
-- CreateTable
108+
CREATE TABLE "Credit" (
109+
"id" UUID NOT NULL,
110+
"courseCode" TEXT NOT NULL,
111+
"year" INTEGER NOT NULL,
112+
"semester" "SemesterType" NOT NULL,
113+
"transfer" BOOLEAN NOT NULL,
114+
"userId" UUID NOT NULL,
115+
116+
CONSTRAINT "Credit_pkey" PRIMARY KEY ("id")
117+
);
118+
119+
-- CreateTable
120+
CREATE TABLE "AcademicDetails" (
121+
"id" SERIAL NOT NULL,
122+
123+
CONSTRAINT "AcademicDetails_pkey" PRIMARY KEY ("id")
124+
);
125+
126+
-- CreateTable
127+
CREATE TABLE "Account" (
128+
"id" UUID NOT NULL,
129+
"type" TEXT NOT NULL,
130+
"provider" TEXT NOT NULL,
131+
"providerAccountId" TEXT NOT NULL,
132+
"refresh_token" TEXT,
133+
"access_token" TEXT,
134+
"expires_at" INTEGER,
135+
"token_type" TEXT,
136+
"scope" TEXT,
137+
"id_token" TEXT,
138+
"session_state" TEXT,
139+
"userId" UUID NOT NULL,
140+
141+
CONSTRAINT "Account_pkey" PRIMARY KEY ("id")
142+
);
143+
144+
-- CreateTable
145+
CREATE TABLE "Session" (
146+
"id" UUID NOT NULL,
147+
"sessionToken" TEXT NOT NULL,
148+
"expires" TIMESTAMP(3) NOT NULL,
149+
"userId" UUID NOT NULL,
150+
151+
CONSTRAINT "Session_pkey" PRIMARY KEY ("id")
152+
);
153+
154+
-- CreateTable
155+
CREATE TABLE "User" (
156+
"id" UUID NOT NULL,
157+
"email" TEXT,
158+
"emailVerified" TIMESTAMP(3),
159+
"onboardingComplete" BOOLEAN NOT NULL DEFAULT false,
160+
"seenHomeOnboardingModal" BOOLEAN NOT NULL DEFAULT false,
161+
"seenPlanOnboardingModal" BOOLEAN NOT NULL DEFAULT false,
162+
163+
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
164+
);
165+
166+
-- CreateTable
167+
CREATE TABLE "VerificationToken" (
168+
"id" SERIAL NOT NULL,
169+
"identifier" TEXT NOT NULL,
170+
"token" TEXT NOT NULL,
171+
"expires" TIMESTAMP(3) NOT NULL,
172+
173+
CONSTRAINT "VerificationToken_pkey" PRIMARY KEY ("id")
174+
);
175+
176+
-- CreateIndex
177+
CREATE UNIQUE INDEX "Profile_userId_key" ON "Profile"("userId");
178+
179+
-- CreateIndex
180+
CREATE UNIQUE INDEX "DegreeRequirements_planId_key" ON "DegreeRequirements"("planId");
181+
182+
-- CreateIndex
183+
CREATE UNIQUE INDEX "Course_semesterId_code_key" ON "Course"("semesterId", "code");
184+
185+
-- CreateIndex
186+
CREATE UNIQUE INDEX "Account_provider_providerAccountId_key" ON "Account"("provider", "providerAccountId");
187+
188+
-- CreateIndex
189+
CREATE UNIQUE INDEX "Session_sessionToken_key" ON "Session"("sessionToken");
190+
191+
-- CreateIndex
192+
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
193+
194+
-- CreateIndex
195+
CREATE UNIQUE INDEX "VerificationToken_token_key" ON "VerificationToken"("token");
196+
197+
-- CreateIndex
198+
CREATE UNIQUE INDEX "VerificationToken_identifier_token_key" ON "VerificationToken"("identifier", "token");
199+
200+
-- AddForeignKey
201+
ALTER TABLE "TemplateData" ADD CONSTRAINT "TemplateData_templateId_fkey" FOREIGN KEY ("templateId") REFERENCES "Template"("id") ON DELETE CASCADE ON UPDATE CASCADE;
202+
203+
-- AddForeignKey
204+
ALTER TABLE "TemplateItem" ADD CONSTRAINT "TemplateItem_templateDataId_fkey" FOREIGN KEY ("templateDataId") REFERENCES "TemplateData"("id") ON DELETE CASCADE ON UPDATE CASCADE;
205+
206+
-- AddForeignKey
207+
ALTER TABLE "Profile" ADD CONSTRAINT "Profile_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
208+
209+
-- AddForeignKey
210+
ALTER TABLE "Plan" ADD CONSTRAINT "Plan_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
211+
212+
-- AddForeignKey
213+
ALTER TABLE "DegreeRequirements" ADD CONSTRAINT "DegreeRequirements_planId_fkey" FOREIGN KEY ("planId") REFERENCES "Plan"("id") ON DELETE CASCADE ON UPDATE CASCADE;
214+
215+
-- AddForeignKey
216+
ALTER TABLE "Course" ADD CONSTRAINT "Course_semesterId_fkey" FOREIGN KEY ("semesterId") REFERENCES "Semester"("id") ON DELETE CASCADE ON UPDATE CASCADE;
217+
218+
-- AddForeignKey
219+
ALTER TABLE "Semester" ADD CONSTRAINT "Semester_planId_fkey" FOREIGN KEY ("planId") REFERENCES "Plan"("id") ON DELETE CASCADE ON UPDATE CASCADE;
220+
221+
-- AddForeignKey
222+
ALTER TABLE "Credit" ADD CONSTRAINT "Credit_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
223+
224+
-- AddForeignKey
225+
ALTER TABLE "Account" ADD CONSTRAINT "Account_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
226+
227+
-- AddForeignKey
228+
ALTER TABLE "Session" ADD CONSTRAINT "Session_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
# Please do not edit this file manually
2+
# It should be added in your version-control system (i.e. Git)
3+
provider = "postgresql"

0 commit comments

Comments
 (0)