Skip to content

Commit eadf334

Browse files
committed
Migrate to prisma 7
1 parent 48f76da commit eadf334

File tree

6 files changed

+174
-8
lines changed

6 files changed

+174
-8
lines changed

package.json

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
"@types/express-session": "^1.18.2",
3939
"@types/jest": "^30.0.0",
4040
"@types/node": "^24.5.2",
41+
"@types/pg": "^8",
4142
"@types/supertest": "^6.0.3",
4243
"dotenv-cli": "^11.0.0",
4344
"esbuild": "^0.27.0",
@@ -47,6 +48,7 @@
4748
"jest": "^30.1.3",
4849
"pino-pretty": "^13.1.1",
4950
"prettier": "^3.6.2",
51+
"prisma": "^7.0.0",
5052
"rimraf": "^6.0.1",
5153
"rollup": "^4.52.0",
5254
"rollup-plugin-esbuild": "^6.2.1",
@@ -61,6 +63,7 @@
6163
"typescript-eslint": "^8.44.0"
6264
},
6365
"dependencies": {
66+
"@prisma/adapter-pg": "^7.0.0",
6467
"@prisma/client": "7.0.0",
6568
"connect-redis": "^9.0.0",
6669
"cors": "^2.8.5",
@@ -70,9 +73,9 @@
7073
"express-session": "^1.18.2",
7174
"helmet": "^8.1.0",
7275
"http-status": "^2.1.0",
76+
"pg": "^8.16.3",
7377
"pino": "^10.0.0",
7478
"pino-http": "^11.0.0",
75-
"prisma": "^7.0.0",
7679
"redis": "^5.8.2",
7780
"zod": "^4.1.11"
7881
}

prisma.config.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
1-
import { defineConfig } from 'prisma/config';
1+
import { defineConfig, env } from 'prisma/config';
22

33
export default defineConfig({
4+
schema: 'prisma/schema.prisma',
45
migrations: {
6+
path: 'prisma/migrations',
57
seed: 'tsx prisma/seeds/index.ts',
68
},
9+
datasource: {
10+
url: env('DATABASE_URL'),
11+
},
712
});

prisma/schema.prisma

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@ generator client {
99

1010
datasource db {
1111
provider = "postgresql"
12-
url = env("DATABASE_URL")
1312
}
1413

1514
// --- template start

prisma/seeds/index.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,4 @@
1-
import { PrismaClient } from '@/generated/prisma/client';
2-
3-
const prisma = new PrismaClient();
1+
import { prisma } from '@/prisma';
42

53
const users = [
64
{ email: 'alice@example.com', name: 'Seeded Alice' },

src/prisma.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
1+
import { PrismaPg } from '@prisma/adapter-pg';
12
import { env } from '@/env';
23
import { PrismaClient } from '@/generated/prisma/client';
34
import { logger } from '@/logger';
45

5-
export const prisma = new PrismaClient();
6+
const adapter = new PrismaPg({ connectionString: env.DATABASE_URL });
7+
export const prisma = new PrismaClient({ adapter });
68

79
export async function connectPrisma() {
810
try {

yarn.lock

Lines changed: 160 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1846,6 +1846,17 @@ __metadata:
18461846
languageName: node
18471847
linkType: hard
18481848

1849+
"@prisma/adapter-pg@npm:^7.0.0":
1850+
version: 7.0.0
1851+
resolution: "@prisma/adapter-pg@npm:7.0.0"
1852+
dependencies:
1853+
"@prisma/driver-adapter-utils": "npm:7.0.0"
1854+
pg: "npm:^8.16.3"
1855+
postgres-array: "npm:3.0.4"
1856+
checksum: 10c0/76106731cfea854ccae60eeb12d6d5bf05df4daad04599b7a9912d5ea5d6ba6d8f502d27970293dc861087023a53d822fdcec18f443c35f42b8d7ec562f01161
1857+
languageName: node
1858+
linkType: hard
1859+
18491860
"@prisma/client-runtime-utils@npm:7.0.0":
18501861
version: 7.0.0
18511862
resolution: "@prisma/client-runtime-utils@npm:7.0.0"
@@ -1921,6 +1932,15 @@ __metadata:
19211932
languageName: node
19221933
linkType: hard
19231934

1935+
"@prisma/driver-adapter-utils@npm:7.0.0":
1936+
version: 7.0.0
1937+
resolution: "@prisma/driver-adapter-utils@npm:7.0.0"
1938+
dependencies:
1939+
"@prisma/debug": "npm:7.0.0"
1940+
checksum: 10c0/bcf39427e30444b234255c5fa52ea02958d95d5b0a648d863b2e1377c5b07666ff77035154990eb495e6e10952fdd76b9987bd9ae11e98b40a942977ad841f4d
1941+
languageName: node
1942+
linkType: hard
1943+
19241944
"@prisma/engines-version@npm:6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513":
19251945
version: 6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513
19261946
resolution: "@prisma/engines-version@npm:6.20.0-16.next-0c19ccc313cf9911a90d99d2ac2eb0280c76c513"
@@ -2442,6 +2462,17 @@ __metadata:
24422462
languageName: node
24432463
linkType: hard
24442464

2465+
"@types/pg@npm:^8":
2466+
version: 8.15.6
2467+
resolution: "@types/pg@npm:8.15.6"
2468+
dependencies:
2469+
"@types/node": "npm:*"
2470+
pg-protocol: "npm:*"
2471+
pg-types: "npm:^2.2.0"
2472+
checksum: 10c0/7f93f83a4da0dc6133918f824d826fa34e78fb8cf86392d28a0e095c836c6910c014ced5d4b364d83e8485a65ce369adeb9663b14ba301241d4c0f80073007f3
2473+
languageName: node
2474+
linkType: hard
2475+
24452476
"@types/qs@npm:*":
24462477
version: 6.14.0
24472478
resolution: "@types/qs@npm:6.14.0"
@@ -4535,12 +4566,14 @@ __metadata:
45354566
dependencies:
45364567
"@eslint/js": "npm:^9.36.0"
45374568
"@ianvs/prettier-plugin-sort-imports": "npm:^4.7.0"
4569+
"@prisma/adapter-pg": "npm:^7.0.0"
45384570
"@prisma/client": "npm:7.0.0"
45394571
"@types/cors": "npm:^2.8.19"
45404572
"@types/express": "npm:^5.0.3"
45414573
"@types/express-session": "npm:^1.18.2"
45424574
"@types/jest": "npm:^30.0.0"
45434575
"@types/node": "npm:^24.5.2"
4576+
"@types/pg": "npm:^8"
45444577
"@types/supertest": "npm:^6.0.3"
45454578
connect-redis: "npm:^9.0.0"
45464579
cors: "npm:^2.8.5"
@@ -4556,6 +4589,7 @@ __metadata:
45564589
helmet: "npm:^8.1.0"
45574590
http-status: "npm:^2.1.0"
45584591
jest: "npm:^30.1.3"
4592+
pg: "npm:^8.16.3"
45594593
pino: "npm:^10.0.0"
45604594
pino-http: "npm:^11.0.0"
45614595
pino-pretty: "npm:^13.1.1"
@@ -6955,6 +6989,87 @@ __metadata:
69556989
languageName: node
69566990
linkType: hard
69576991

6992+
"pg-cloudflare@npm:^1.2.7":
6993+
version: 1.2.7
6994+
resolution: "pg-cloudflare@npm:1.2.7"
6995+
checksum: 10c0/8a52713dbdecc9d389dc4e65e3b7ede2e199ec3715f7491ee80a15db171f2d75677a102e9c2cef0cb91a2f310e91f976eaec0dd6ef5d8bf357de0b948f9d9431
6996+
languageName: node
6997+
linkType: hard
6998+
6999+
"pg-connection-string@npm:^2.9.1":
7000+
version: 2.9.1
7001+
resolution: "pg-connection-string@npm:2.9.1"
7002+
checksum: 10c0/9a646529bbc0843806fc5de98ce93735a4612b571f11867178a85665d11989a827e6fd157388ca0e34ec948098564fce836c178cfd499b9f0e8cd9972b8e2e5c
7003+
languageName: node
7004+
linkType: hard
7005+
7006+
"pg-int8@npm:1.0.1":
7007+
version: 1.0.1
7008+
resolution: "pg-int8@npm:1.0.1"
7009+
checksum: 10c0/be6a02d851fc2a4ae3e9de81710d861de3ba35ac927268973eb3cb618873a05b9424656df464dd43bd7dc3fc5295c3f5b3c8349494f87c7af50ec59ef14e0b98
7010+
languageName: node
7011+
linkType: hard
7012+
7013+
"pg-pool@npm:^3.10.1":
7014+
version: 3.10.1
7015+
resolution: "pg-pool@npm:3.10.1"
7016+
peerDependencies:
7017+
pg: ">=8.0"
7018+
checksum: 10c0/a00916b7df64226cc597fe769e3a757ff9b11562dc87ce5b0a54101a18c1fe282daaa2accaf27221e81e1e4cdf4da6a33dab09614734d32904d6c4e11c44a079
7019+
languageName: node
7020+
linkType: hard
7021+
7022+
"pg-protocol@npm:*, pg-protocol@npm:^1.10.3":
7023+
version: 1.10.3
7024+
resolution: "pg-protocol@npm:1.10.3"
7025+
checksum: 10c0/f7ef54708c93ee6d271e37678296fc5097e4337fca91a88a3d99359b78633dbdbf6e983f0adb34b7cdd261b7ec7266deb20c3233bf3dfdb498b3e1098e8750b9
7026+
languageName: node
7027+
linkType: hard
7028+
7029+
"pg-types@npm:2.2.0, pg-types@npm:^2.2.0":
7030+
version: 2.2.0
7031+
resolution: "pg-types@npm:2.2.0"
7032+
dependencies:
7033+
pg-int8: "npm:1.0.1"
7034+
postgres-array: "npm:~2.0.0"
7035+
postgres-bytea: "npm:~1.0.0"
7036+
postgres-date: "npm:~1.0.4"
7037+
postgres-interval: "npm:^1.1.0"
7038+
checksum: 10c0/ab3f8069a323f601cd2d2279ca8c425447dab3f9b61d933b0601d7ffc00d6200df25e26a4290b2b0783b59278198f7dd2ed03e94c4875797919605116a577c65
7039+
languageName: node
7040+
linkType: hard
7041+
7042+
"pg@npm:^8.16.3":
7043+
version: 8.16.3
7044+
resolution: "pg@npm:8.16.3"
7045+
dependencies:
7046+
pg-cloudflare: "npm:^1.2.7"
7047+
pg-connection-string: "npm:^2.9.1"
7048+
pg-pool: "npm:^3.10.1"
7049+
pg-protocol: "npm:^1.10.3"
7050+
pg-types: "npm:2.2.0"
7051+
pgpass: "npm:1.0.5"
7052+
peerDependencies:
7053+
pg-native: ">=3.0.1"
7054+
dependenciesMeta:
7055+
pg-cloudflare:
7056+
optional: true
7057+
peerDependenciesMeta:
7058+
pg-native:
7059+
optional: true
7060+
checksum: 10c0/a6a407ff0efb7599760d72ffdcda47a74c34c0fd71d896623caac45cf2cfb0f49a10973cce23110f182b9810639a1e9f6904454d7358c7001574ee0ffdcbce2a
7061+
languageName: node
7062+
linkType: hard
7063+
7064+
"pgpass@npm:1.0.5":
7065+
version: 1.0.5
7066+
resolution: "pgpass@npm:1.0.5"
7067+
dependencies:
7068+
split2: "npm:^4.1.0"
7069+
checksum: 10c0/5ea6c9b2de04c33abb08d33a2dded303c4a3c7162a9264519cbe85c0a9857d712463140ba42fad0c7cd4b21f644dd870b45bb2e02fcbe505b4de0744fd802c1d
7070+
languageName: node
7071+
linkType: hard
7072+
69587073
"picocolors@npm:^1.0.0":
69597074
version: 1.0.0
69607075
resolution: "picocolors@npm:1.0.0"
@@ -7089,6 +7204,43 @@ __metadata:
70897204
languageName: node
70907205
linkType: hard
70917206

7207+
"postgres-array@npm:3.0.4":
7208+
version: 3.0.4
7209+
resolution: "postgres-array@npm:3.0.4"
7210+
checksum: 10c0/47f3e648da512bacdd6a5ed55cf770605ec271330789faeece0fd13805a49f376d6e5c9e0e353377be11a9545e727dceaa2473566c505432bf06366ccd04c6b2
7211+
languageName: node
7212+
linkType: hard
7213+
7214+
"postgres-array@npm:~2.0.0":
7215+
version: 2.0.0
7216+
resolution: "postgres-array@npm:2.0.0"
7217+
checksum: 10c0/cbd56207e4141d7fbf08c86f2aebf21fa7064943d3f808ec85f442ff94b48d891e7a144cc02665fb2de5dbcb9b8e3183a2ac749959e794b4a4cfd379d7a21d08
7218+
languageName: node
7219+
linkType: hard
7220+
7221+
"postgres-bytea@npm:~1.0.0":
7222+
version: 1.0.0
7223+
resolution: "postgres-bytea@npm:1.0.0"
7224+
checksum: 10c0/febf2364b8a8953695cac159eeb94542ead5886792a9627b97e33f6b5bb6e263bc0706ab47ec221516e79fbd6b2452d668841830fb3b49ec6c0fc29be61892ce
7225+
languageName: node
7226+
linkType: hard
7227+
7228+
"postgres-date@npm:~1.0.4":
7229+
version: 1.0.7
7230+
resolution: "postgres-date@npm:1.0.7"
7231+
checksum: 10c0/0ff91fccc64003e10b767fcfeefb5eaffbc522c93aa65d5051c49b3c4ce6cb93ab091a7d22877a90ad60b8874202c6f1d0f935f38a7235ed3b258efd54b97ca9
7232+
languageName: node
7233+
linkType: hard
7234+
7235+
"postgres-interval@npm:^1.1.0":
7236+
version: 1.2.0
7237+
resolution: "postgres-interval@npm:1.2.0"
7238+
dependencies:
7239+
xtend: "npm:^4.0.0"
7240+
checksum: 10c0/c1734c3cb79e7f22579af0b268a463b1fa1d084e742a02a7a290c4f041e349456f3bee3b4ee0bb3f226828597f7b76deb615c1b857db9a742c45520100456272
7241+
languageName: node
7242+
linkType: hard
7243+
70927244
"postgres@npm:3.4.7":
70937245
version: 3.4.7
70947246
resolution: "postgres@npm:3.4.7"
@@ -7830,7 +7982,7 @@ __metadata:
78307982
languageName: node
78317983
linkType: hard
78327984

7833-
"split2@npm:^4.0.0":
7985+
"split2@npm:^4.0.0, split2@npm:^4.1.0":
78347986
version: 4.2.0
78357987
resolution: "split2@npm:4.2.0"
78367988
checksum: 10c0/b292beb8ce9215f8c642bb68be6249c5a4c7f332fc8ecadae7be5cbdf1ea95addc95f0459ef2e7ad9d45fd1064698a097e4eb211c83e772b49bc0ee423e91534
@@ -8605,6 +8757,13 @@ __metadata:
86058757
languageName: node
86068758
linkType: hard
86078759

8760+
"xtend@npm:^4.0.0":
8761+
version: 4.0.2
8762+
resolution: "xtend@npm:4.0.2"
8763+
checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e
8764+
languageName: node
8765+
linkType: hard
8766+
86088767
"y18n@npm:^5.0.5":
86098768
version: 5.0.8
86108769
resolution: "y18n@npm:5.0.8"

0 commit comments

Comments
 (0)