Faire passer le seed par la connexion d amorçage
Le seed installe un premier compte de démonstration : il ne peut pas le créer dans un contexte locataire qui n existe pas encore. Or il se connectait avec le rôle applicatif, soumis à la row-level security en FORCE — l upsert Prisma (INSERT ... ON CONFLICT) se heurtait à la politique de lecture « id = planflow_current_account() », renvoyant NULL. Utiliser ADMIN_DATABASE_URL (compte d amorçage), comme le fait déjà le harnais de tests d intégration (tests/integration/admin-db.ts).
This commit is contained in:
1 parent
4d0e784b8e
commit
b5e8ae43c8
1 file changed
+11
-1
+11
-1
@@ -35,8 +35,18 @@ import { withTenant } from '../src/server/tenant';
|
|||||||
|
|
||||||
const DEMO_PASSWORD = 'planflow-demo-2026';
|
const DEMO_PASSWORD = 'planflow-demo-2026';
|
||||||
|
|
||||||
|
// Connexion d'amorçage, **pas** celle de l'application — même principe que le
|
||||||
|
// harnais de tests (tests/integration/admin-db.ts).
|
||||||
|
//
|
||||||
|
// L'application se connecte avec un rôle soumis à la row-level security, qui
|
||||||
|
// ne voit rien hors du compte courant et ne peut pas créer de compte de toutes
|
||||||
|
// pièces : c'est exactement ce qu'on attend de lui. Le seed, lui, installe un
|
||||||
|
// **premier** compte de démonstration — il ne peut pas le faire dans un
|
||||||
|
// contexte locataire qui n'existe pas encore. Il passe donc par la connexion
|
||||||
|
// d'amorçage, comme un exploitant depuis le serveur.
|
||||||
const adapter = new PrismaPg({
|
const adapter = new PrismaPg({
|
||||||
connectionString: process.env.DATABASE_URL ?? '',
|
connectionString:
|
||||||
|
process.env.ADMIN_DATABASE_URL ?? process.env.DATABASE_URL ?? '',
|
||||||
});
|
});
|
||||||
const prisma = new PrismaClient({ adapter });
|
const prisma = new PrismaClient({ adapter });
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user