From a37e1fdcecaca6af56f42b4fec57a5a9bff9e2f0 Mon Sep 17 00:00:00 2001 From: johndoe6345789 Date: Thu, 15 Jan 2026 02:19:44 +0000 Subject: [PATCH] refactor: Move Prisma schema to /dbal/shared (source of truth) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Prisma schema is the single source of truth for the entire system and should live in shared, not in development-specific location. MOVED: - /dbal/development/prisma/schema.prisma → /dbal/shared/prisma/schema.prisma UPDATED: - DBAL package.json: db:* scripts reference ../shared/prisma/schema.prisma - config package.json: schema reference updated - gen_prisma_schema.js: outputs to shared location STRUCTURE NOW: - /dbal/shared/prisma/ - Prisma schema (source of truth) - /dbal/shared/seeds/ - Seed data (YAML files) - /dbal/development/ - Uses shared schema via relative path This ensures: ✅ Single source of truth for schema ✅ Schema is shared across all implementations (Phase 2 TypeScript, Phase 3 C++) ✅ Development just references the shared schema ✅ Independent deployability maintained Co-Authored-By: Claude Haiku 4.5 --- .claude/settings.local.json | 3 ++- config/package.json | 4 ++-- dbal/development/package.json | 8 ++++---- dbal/{development => shared}/prisma/schema.prisma | 0 dbal/shared/tools/codegen/gen_prisma_schema.js | 2 +- 5 files changed, 9 insertions(+), 8 deletions(-) rename dbal/{development => shared}/prisma/schema.prisma (100%) diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 4718ccbcf..704d59c0c 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -51,7 +51,8 @@ "Bash(npx tsc:*)", "Bash(npm run build:*)", "Bash(npm run codegen:*)", - "Bash(npm:*)" + "Bash(npm:*)", + "Bash(__NEW_LINE_5881b1d201560748__ echo \"\")" ] }, "spinnerTipsEnabled": false diff --git a/config/package.json b/config/package.json index bba6f33a5..715510d0c 100644 --- a/config/package.json +++ b/config/package.json @@ -9,8 +9,8 @@ "extract:auto": "cd frontends/nextjs && npm run extract:auto", "extract:all": "cd frontends/nextjs && npm run extract:all", "extract:help": "cd frontends/nextjs && npm run extract:help", - "db:generate": "npx prisma generate --schema=../dbal/development/prisma/schema.prisma", - "db:migrate": "npx prisma migrate dev --schema=../dbal/development/prisma/schema.prisma" + "db:generate": "npx prisma generate --schema=../dbal/shared/prisma/schema.prisma", + "db:migrate": "npx prisma migrate dev --schema=../dbal/shared/prisma/schema.prisma" }, "devDependencies": { "@prisma/client": "^7.2.0", diff --git a/dbal/development/package.json b/dbal/development/package.json index 2539e2dda..c9a42512b 100644 --- a/dbal/development/package.json +++ b/dbal/development/package.json @@ -17,10 +17,10 @@ "codegen": "tsx ../shared/tools/codegen/gen_types.ts", "codegen:prisma": "node ../shared/tools/codegen/gen_prisma_schema.js", "generate-types": "node ../shared/tools/codegen/generate-types.js", - "db:generate": "prisma generate --schema=prisma/schema.prisma", - "db:push": "prisma db push --schema=prisma/schema.prisma", - "db:migrate": "prisma migrate deploy --schema=prisma/schema.prisma", - "db:studio": "prisma studio --schema=prisma/schema.prisma", + "db:generate": "prisma generate --schema=../shared/prisma/schema.prisma", + "db:push": "prisma db push --schema=../shared/prisma/schema.prisma", + "db:migrate": "prisma migrate deploy --schema=../shared/prisma/schema.prisma", + "db:studio": "prisma studio --schema=../shared/prisma/schema.prisma", "db:seed": "tsx ../shared/seeds/load-and-apply.ts" }, "keywords": [ diff --git a/dbal/development/prisma/schema.prisma b/dbal/shared/prisma/schema.prisma similarity index 100% rename from dbal/development/prisma/schema.prisma rename to dbal/shared/prisma/schema.prisma diff --git a/dbal/shared/tools/codegen/gen_prisma_schema.js b/dbal/shared/tools/codegen/gen_prisma_schema.js index 1dc9c371f..a743b9615 100644 --- a/dbal/shared/tools/codegen/gen_prisma_schema.js +++ b/dbal/shared/tools/codegen/gen_prisma_schema.js @@ -165,6 +165,6 @@ const renderModel = (model) => { } const schema = [header, models.map(renderModel).join('\n\n')].join('\n\n') -const outputPath = path.resolve(__dirname, '../../../development/prisma/schema.prisma') +const outputPath = path.resolve(__dirname, '../../prisma/schema.prisma') fs.writeFileSync(outputPath, schema + '\n', 'utf8') console.log(`Prisma schema written to ${outputPath}`)