Skip to content

Revoir la façon de générer le client Prisma pour les backends #2064

@StephaneTrebel

Description

@StephaneTrebel

On a une espèce de conflit/race condition en local avec le pnpm -r run db:generate lancé à la racine de console.

Le problème vient du fait que ça appelle la commande dans server et server-nestjs et:

$❯ pnpm run db:generate

> @cpn-console/root@9.14.1 db:generate /home/stephane/projets/clients/cloud-pi/console
> pnpm -r run db:generate

Scope: 17 of 18 workspace projects
apps/server db:generate$ prisma generate
│ Loaded Prisma config from prisma.config.ts.
│ Prisma config detected, skipping environment variable loading.
│ Prisma schema loaded from src/prisma/schema
│ ✔ Generated Prisma Client (v6.19.2) to ./../../node_modules/.pnpm/@prisma+client@6.19.2_prisma@6.19.2_magicast@0.3.5_typescript@5.9.3__typescript@5.9.3/node_modules/@prisma/client in 108ms
│ Start by importing your Prisma Client (See: https://pris.ly/d/importing-client)
│ Tip: Need your database queries to be 1000x faster? Accelerate offers you that and more: https://pris.ly/tip-2-accelerate
└─ Done in 1.1s
apps/server-nestjs db:generate$ prisma generate
│ Loaded Prisma config from prisma.config.ts.
│ Prisma config detected, skipping environment variable loading.
│ Prisma schema loaded from src/prisma/schema
│ ✔ Generated Prisma Client (v6.19.2) to ./../../node_modules/.pnpm/@prisma+client@6.19.2_prisma@6.19.2_magicast@0.3.5_typescript@5.9.3__typescript@5.9.3/node_modules/@prisma/client in 106ms
│ Start by importing your Prisma Client (See: https://pris.ly/d/importing-client)
│ Tip: Need your database queries to be 1000x faster? Accelerate offers you that and more: https://pris.ly/tip-2-accelerate
└─ Done in 1.1s

Plus précisément les deux invocations de la commande, dans apps/server et apps/server-nestjs re-génèrent le client prisma au même endroit (dans ./../../node_modules/.pnpm/@prisma+client@6.19.2_prisma@6.19.2_magicast@0.3.5_typescript@5.9.3__typescript@5.9.3/node_modules/@prisma/client)

Étant donné que les commandes sont lancées en parallèle, ça peut créer des problèmes 😅

L'idéal serait de revoir la manière de gérer le client prisma et d'utiliser plutôt un package dédié dans le workspace, qui serait alors une dépendance de server et de server-nestjs: https://www.prisma.io/docs/guides/deployment/pnpm-workspaces

Metadata

Metadata

Labels

bugSomething isn't workingrefactorRefactor codetechTechnical issuetechnical debtRésoud de la dette technique

Type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions