Skip to content
This repository was archived by the owner on Jun 29, 2025. It is now read-only.

Commit 3a01f7c

Browse files
author
Jules Lefebvre
committed
feat(backend/prisma): allow postgresql database
Add prisma schema and init migration for postgresql database.
1 parent 6a04117 commit 3a01f7c

File tree

7 files changed

+204
-0
lines changed

7 files changed

+204
-0
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ yarn-error.log*
2727
# env file
2828
.env
2929
!/backend/prisma/sqlite/.env
30+
!/backend/prisma/postgresql/.env
3031

3132
# vercel
3233
.vercel

backend/prisma/postgresql/.env

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
#This file is only used to set a default value for the database url
2+
DATABASE_URL="postgresql://localhost"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../schema/generator.prisma
Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
-- CreateTable
2+
CREATE TABLE "User" (
3+
"id" TEXT NOT NULL,
4+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
5+
"updatedAt" TIMESTAMP(3) NOT NULL,
6+
"username" TEXT NOT NULL,
7+
"email" TEXT NOT NULL,
8+
"password" TEXT,
9+
"isAdmin" BOOLEAN NOT NULL DEFAULT false,
10+
"ldapDN" TEXT,
11+
"totpEnabled" BOOLEAN NOT NULL DEFAULT false,
12+
"totpVerified" BOOLEAN NOT NULL DEFAULT false,
13+
"totpSecret" TEXT,
14+
15+
CONSTRAINT "User_pkey" PRIMARY KEY ("id")
16+
);
17+
18+
-- CreateTable
19+
CREATE TABLE "RefreshToken" (
20+
"id" TEXT NOT NULL,
21+
"token" TEXT NOT NULL,
22+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
23+
"expiresAt" TIMESTAMP(3) NOT NULL,
24+
"userId" TEXT NOT NULL,
25+
"oauthIDToken" TEXT,
26+
27+
CONSTRAINT "RefreshToken_pkey" PRIMARY KEY ("id")
28+
);
29+
30+
-- CreateTable
31+
CREATE TABLE "LoginToken" (
32+
"token" TEXT NOT NULL,
33+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
34+
"expiresAt" TIMESTAMP(3) NOT NULL,
35+
"userId" TEXT NOT NULL,
36+
"used" BOOLEAN NOT NULL DEFAULT false,
37+
38+
CONSTRAINT "LoginToken_pkey" PRIMARY KEY ("token")
39+
);
40+
41+
-- CreateTable
42+
CREATE TABLE "ResetPasswordToken" (
43+
"token" TEXT NOT NULL,
44+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
45+
"expiresAt" TIMESTAMP(3) NOT NULL,
46+
"userId" TEXT NOT NULL,
47+
48+
CONSTRAINT "ResetPasswordToken_pkey" PRIMARY KEY ("token")
49+
);
50+
51+
-- CreateTable
52+
CREATE TABLE "OAuthUser" (
53+
"id" TEXT NOT NULL,
54+
"provider" TEXT NOT NULL,
55+
"providerUserId" TEXT NOT NULL,
56+
"providerUsername" TEXT NOT NULL,
57+
"userId" TEXT NOT NULL,
58+
59+
CONSTRAINT "OAuthUser_pkey" PRIMARY KEY ("id")
60+
);
61+
62+
-- CreateTable
63+
CREATE TABLE "Share" (
64+
"id" TEXT NOT NULL,
65+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
66+
"name" TEXT,
67+
"uploadLocked" BOOLEAN NOT NULL DEFAULT false,
68+
"isZipReady" BOOLEAN NOT NULL DEFAULT false,
69+
"views" INTEGER NOT NULL DEFAULT 0,
70+
"expiration" TIMESTAMP(3) NOT NULL,
71+
"description" TEXT,
72+
"removedReason" TEXT,
73+
"creatorId" TEXT,
74+
"reverseShareId" TEXT,
75+
"storageProvider" TEXT NOT NULL DEFAULT 'LOCAL',
76+
77+
CONSTRAINT "Share_pkey" PRIMARY KEY ("id")
78+
);
79+
80+
-- CreateTable
81+
CREATE TABLE "ReverseShare" (
82+
"id" TEXT NOT NULL,
83+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
84+
"token" TEXT NOT NULL,
85+
"shareExpiration" TIMESTAMP(3) NOT NULL,
86+
"maxShareSize" TEXT NOT NULL,
87+
"sendEmailNotification" BOOLEAN NOT NULL,
88+
"remainingUses" INTEGER NOT NULL,
89+
"simplified" BOOLEAN NOT NULL DEFAULT false,
90+
"publicAccess" BOOLEAN NOT NULL DEFAULT true,
91+
"creatorId" TEXT NOT NULL,
92+
93+
CONSTRAINT "ReverseShare_pkey" PRIMARY KEY ("id")
94+
);
95+
96+
-- CreateTable
97+
CREATE TABLE "ShareRecipient" (
98+
"id" TEXT NOT NULL,
99+
"email" TEXT NOT NULL,
100+
"shareId" TEXT NOT NULL,
101+
102+
CONSTRAINT "ShareRecipient_pkey" PRIMARY KEY ("id")
103+
);
104+
105+
-- CreateTable
106+
CREATE TABLE "File" (
107+
"id" TEXT NOT NULL,
108+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
109+
"name" TEXT NOT NULL,
110+
"size" TEXT NOT NULL,
111+
"shareId" TEXT NOT NULL,
112+
113+
CONSTRAINT "File_pkey" PRIMARY KEY ("id")
114+
);
115+
116+
-- CreateTable
117+
CREATE TABLE "ShareSecurity" (
118+
"id" TEXT NOT NULL,
119+
"createdAt" TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP,
120+
"password" TEXT,
121+
"maxViews" INTEGER,
122+
"shareId" TEXT,
123+
124+
CONSTRAINT "ShareSecurity_pkey" PRIMARY KEY ("id")
125+
);
126+
127+
-- CreateTable
128+
CREATE TABLE "Config" (
129+
"updatedAt" TIMESTAMP(3) NOT NULL,
130+
"name" TEXT NOT NULL,
131+
"category" TEXT NOT NULL,
132+
"type" TEXT NOT NULL,
133+
"defaultValue" TEXT NOT NULL DEFAULT '',
134+
"value" TEXT,
135+
"obscured" BOOLEAN NOT NULL DEFAULT false,
136+
"secret" BOOLEAN NOT NULL DEFAULT true,
137+
"locked" BOOLEAN NOT NULL DEFAULT false,
138+
"order" INTEGER NOT NULL,
139+
140+
CONSTRAINT "Config_pkey" PRIMARY KEY ("name","category")
141+
);
142+
143+
-- CreateIndex
144+
CREATE UNIQUE INDEX "User_username_key" ON "User"("username");
145+
146+
-- CreateIndex
147+
CREATE UNIQUE INDEX "User_email_key" ON "User"("email");
148+
149+
-- CreateIndex
150+
CREATE UNIQUE INDEX "User_ldapDN_key" ON "User"("ldapDN");
151+
152+
-- CreateIndex
153+
CREATE UNIQUE INDEX "RefreshToken_token_key" ON "RefreshToken"("token");
154+
155+
-- CreateIndex
156+
CREATE UNIQUE INDEX "ResetPasswordToken_userId_key" ON "ResetPasswordToken"("userId");
157+
158+
-- CreateIndex
159+
CREATE UNIQUE INDEX "ReverseShare_token_key" ON "ReverseShare"("token");
160+
161+
-- CreateIndex
162+
CREATE UNIQUE INDEX "ShareSecurity_shareId_key" ON "ShareSecurity"("shareId");
163+
164+
-- AddForeignKey
165+
ALTER TABLE "RefreshToken" ADD CONSTRAINT "RefreshToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
166+
167+
-- AddForeignKey
168+
ALTER TABLE "LoginToken" ADD CONSTRAINT "LoginToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
169+
170+
-- AddForeignKey
171+
ALTER TABLE "ResetPasswordToken" ADD CONSTRAINT "ResetPasswordToken_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
172+
173+
-- AddForeignKey
174+
ALTER TABLE "OAuthUser" ADD CONSTRAINT "OAuthUser_userId_fkey" FOREIGN KEY ("userId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
175+
176+
-- AddForeignKey
177+
ALTER TABLE "Share" ADD CONSTRAINT "Share_creatorId_fkey" FOREIGN KEY ("creatorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
178+
179+
-- AddForeignKey
180+
ALTER TABLE "Share" ADD CONSTRAINT "Share_reverseShareId_fkey" FOREIGN KEY ("reverseShareId") REFERENCES "ReverseShare"("id") ON DELETE CASCADE ON UPDATE CASCADE;
181+
182+
-- AddForeignKey
183+
ALTER TABLE "ReverseShare" ADD CONSTRAINT "ReverseShare_creatorId_fkey" FOREIGN KEY ("creatorId") REFERENCES "User"("id") ON DELETE CASCADE ON UPDATE CASCADE;
184+
185+
-- AddForeignKey
186+
ALTER TABLE "ShareRecipient" ADD CONSTRAINT "ShareRecipient_shareId_fkey" FOREIGN KEY ("shareId") REFERENCES "Share"("id") ON DELETE CASCADE ON UPDATE CASCADE;
187+
188+
-- AddForeignKey
189+
ALTER TABLE "File" ADD CONSTRAINT "File_shareId_fkey" FOREIGN KEY ("shareId") REFERENCES "Share"("id") ON DELETE CASCADE ON UPDATE CASCADE;
190+
191+
-- AddForeignKey
192+
ALTER TABLE "ShareSecurity" ADD CONSTRAINT "ShareSecurity_shareId_fkey" FOREIGN KEY ("shareId") REFERENCES "Share"("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 (e.g., Git)
3+
provider = "postgresql"
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
../../schema/models.prisma
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
datasource db {
2+
provider = "postgresql"
3+
url = env("DATABASE_URL")
4+
}

0 commit comments

Comments
 (0)