Skip to content

Commit 4b42b8d

Browse files
chore: upgrade prisma to v7 (#1536)
* chore: upgrade prisma to v7 * ci: run prisma generate for backend tests * chore: bump prisma version to v7.4.0 * refactor: clean up get model audit fields * chore: update summary api after rebase for prisma 7 changes * chore: run pre-commit on all files
1 parent 69084ce commit 4b42b8d

File tree

76 files changed

+1547
-973
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1547
-973
lines changed

.github/workflows/.tests.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
with:
4343
commands: |
4444
npm install
45+
npm run prisma-generate || true
4546
npm run test:cov
4647
dir: ${{ inputs.app }}/${{ matrix.dir }}
4748
node_version: "22"

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,5 @@ admin/backend/coverage/**/*
272272
# Ops
273273
ops/logs/
274274
ops/out/
275+
# Prisma generated client (output of `prisma generate`)
276+
**/src/generated/prisma/

Makefile

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,10 @@ reset_project:
4949
@echo "Resetting the project..."
5050
make reset_db
5151
npm install
52-
cd public/backend && npx prisma generate
53-
cd admin/backend && npx prisma generate
52+
rm -rf public/backend/src/generated/prisma
53+
rm -rf admin/backend/src/generated/prisma
54+
cd public/backend && npx prisma generate --sql
55+
cd admin/backend && npx prisma generate --sql
5456
@echo "Project reset completed."
5557

5658
.PHONY: load_test

admin/backend/Dockerfile

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,19 +13,13 @@ COPY admin/backend/package.json admin/backend/
1313
# Copy all source files
1414
COPY . .
1515

16-
ENV PRISMA_CLI_BINARY_TARGETS=debian-openssl-3.0.x
17-
1816
# Install all dependencies at root (npm workspace install)
1917
RUN npm install
2018

2119
# Build the backend (runs in admin/backend folder)
2220
WORKDIR /app/admin/backend
2321
RUN npm run build
2422

25-
# Ensure .prisma directory exists in the correct location
26-
WORKDIR /app
27-
RUN mkdir -p admin/backend/node_modules/.prisma || true
28-
2923
# Dependencies
3024
FROM node:24.11.1-slim AS dependencies
3125

@@ -41,8 +35,6 @@ COPY admin/backend/package.json admin/backend/
4135
# Copy all source files
4236
COPY . .
4337

44-
ENV PRISMA_CLI_BINARY_TARGETS=debian-openssl-3.0.x
45-
4638
# Install production dependencies at root (npm workspace install)
4739
RUN npm install --ignore-scripts --no-update-notifier --omit=dev
4840

@@ -53,8 +45,6 @@ ENV NODE_ENV=production
5345
# Copy app and dependencies
5446
WORKDIR /app
5547
COPY --from=dependencies /app/node_modules ./node_modules
56-
COPY --from=build /app/node_modules/@prisma ./node_modules/@prisma
57-
COPY --from=build /app/node_modules/.prisma ./node_modules/.prisma
5848
COPY --from=build /app/admin/backend/dist ./dist
5949

6050
# Boilerplate, not used in OpenShift/Kubernetes

admin/backend/build-scripts/copy-prisma-generated-sql.js

Lines changed: 0 additions & 58 deletions
This file was deleted.

admin/backend/nest-cli.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
"collection": "@nestjs/schematics",
44
"sourceRoot": "src",
55
"compilerOptions": {
6-
"deleteOutDir": true,
7-
"assets": ["prisma-generated-sql/**/*"]
6+
"deleteOutDir": true
87
}
98
}

admin/backend/package.json

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,20 +5,21 @@
55
"author": "",
66
"private": true,
77
"license": "UNLICENSED",
8+
"type": "module",
89
"scripts": {
910
"prisma-generate": "prisma generate",
10-
"build": "prisma generate && nest build && cp -r src/prisma-generated-sql dist/admin/backend/src/",
11+
"build": "prisma generate && nest build && tsc-alias",
12+
"copy-prisma-generated-sql": "prisma generate --sql && cp src/generated/prisma/sql/*.ts src/prisma-generated-sql/ && npm run prettier-fix",
1113
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
1214
"deploy": "npm install --ignore-scripts --no-update-notifier && npm run build",
1315
"start": "node dist/admin/backend/src/main.js",
14-
"dev": "ts-node-dev -r tsconfig-paths/register src/main.ts",
16+
"dev": "node --import @swc-node/register/esm-register --watch src/main.ts",
1517
"start:debug": "nest start --debug --watch",
16-
"start:prod": "node dist/main",
18+
"start:prod": "node dist/admin/backend/src/main.js",
1719
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
1820
"test": "vitest --exclude e2e",
1921
"test:cov": "npx vitest run --coverage --exclude e2e",
2022
"test:e2e": "vitest --dir e2e",
21-
"copy-prisma-generated-sql": "prisma generate --sql && node build-scripts/copy-prisma-generated-sql.js",
2223
"prettier-fix": "prettier --write \"**/*.{js,jsx,ts,tsx,json,css,scss,md}\"",
2324
"generate-admin-api": "npx openapi-generator-cli generate -i http://localhost:8001/api/docs-json -g typescript-fetch -o ../frontend/src/services/recreation-resource-admin --skip-validate-spec --additional-properties=modelPropertyNaming=original",
2425
"install-admin-client-sdk": "npm run generate-admin-api && npx prettier --write \"../frontend/src/services/recreation-resource-admin/**/*.{js,jsx,ts,tsx,json,md}\""
@@ -35,7 +36,8 @@
3536
"@nestjs/platform-express": "^11.1.6",
3637
"@nestjs/swagger": "^11.2.0",
3738
"@nestjs/terminus": "^11.0.0",
38-
"@prisma/client": "^6.15.0",
39+
"@prisma/adapter-pg": "^7.4.0",
40+
"@prisma/client": "^7.4.0",
3941
"axios": "^1.9.0",
4042
"axios-retry": "^4.5.0",
4143
"class-transformer": "^0.5.1",
@@ -57,26 +59,26 @@
5759
"@eslint/js": "^9.18.0",
5860
"@nestjs/schematics": "^11.0.0",
5961
"@nestjs/testing": "^11.0.1",
62+
"@swc-node/register": "^1.11.1",
6063
"@swc/cli": "^0.7.0",
6164
"@swc/core": "^1.13.5",
6265
"@types/express": "^5.0.0",
6366
"@types/multer": "^2.0.0",
6467
"@types/node": "^24.0.0",
6568
"@types/supertest": "^6.0.2",
6669
"@vitest/coverage-v8": "^4.0.16",
70+
"dotenv": "^17.0.0",
6771
"eslint": "^9.18.0",
6872
"eslint-config-prettier": "^10.0.1",
6973
"eslint-plugin-prettier": "^5.2.2",
7074
"globals": "^17.0.0",
7175
"prettier": "^3.4.2",
72-
"prisma": "^6.16.1",
76+
"prisma": "^7.4.0",
7377
"source-map-support": "^0.5.21",
7478
"supertest": "^7.0.0",
7579
"ts-loader": "^9.5.2",
76-
"ts-node": "^10.9.2",
77-
"ts-node-dev": "^2.0.0",
78-
"tsconfig-paths": "^4.2.0",
79-
"typescript": "^5.7.3",
80+
"tsc-alias": "^1.8.16",
81+
"typescript": "^5.9.3",
8082
"typescript-eslint": "^8.20.0",
8183
"unplugin-swc": "^1.5.2",
8284
"vite-tsconfig-paths": "^6.0.0",

admin/backend/prisma.config.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import 'dotenv/config';
2+
import { defineConfig } from 'prisma/config';
3+
4+
const user = process.env.POSTGRES_USER;
5+
const password = encodeURIComponent(process.env.POSTGRES_PASSWORD || '');
6+
const host = process.env.POSTGRES_HOST || 'localhost';
7+
const port = process.env.POSTGRES_PORT || '5432';
8+
const database = process.env.POSTGRES_DATABASE;
9+
const schema = process.env.POSTGRES_SCHEMA || 'rst';
10+
const url = `postgresql://${user}:${password}@${host}:${port}/${database}?schema=${schema}`;
11+
12+
export default defineConfig({
13+
schema: 'prisma/schema.prisma',
14+
migrations: {
15+
path: 'prisma/migrations',
16+
},
17+
datasource: {
18+
url,
19+
},
20+
});

admin/backend/prisma/schema.prisma

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,11 @@
11
generator client {
2-
provider = "prisma-client-js"
3-
previewFeatures = ["metrics", "multiSchema", "typedSql", "views"]
4-
binaryTargets = ["native", "debian-openssl-3.0.x", "linux-arm64-openssl-3.0.x"]
2+
provider = "prisma-client"
3+
output = "../src/generated/prisma"
4+
previewFeatures = ["typedSql", "views"]
55
}
66

77
datasource db {
88
provider = "postgresql"
9-
url = env("DATABASE_URL")
109
schemas = ["admin", "rst"]
1110
}
1211

admin/backend/src/common/filters/all-exceptions.filter.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
Logger,
1010
NotFoundException,
1111
} from '@nestjs/common';
12-
import { Prisma } from '@prisma/client';
12+
import { Prisma } from '@generated/prisma';
1313
import { Request, Response } from 'express';
1414

1515
/**

0 commit comments

Comments
 (0)