19 lines
959 B
JavaScript
19 lines
959 B
JavaScript
// Generates prisma/schema.sqlite.prisma from the canonical schema.prisma by
|
|
// swapping only the datasource provider to sqlite. Keeping a single source of
|
|
// truth for the models avoids drift; the sqlite schema is used for local tests
|
|
// (PrismaClient with a mysql provider cannot use a `file:` URL).
|
|
import { readFileSync, writeFileSync } from 'node:fs';
|
|
import { resolve } from 'node:path';
|
|
|
|
const src = resolve('prisma/schema.prisma');
|
|
const dest = resolve('prisma/schema.sqlite.prisma');
|
|
|
|
const original = readFileSync(src, 'utf8');
|
|
if (!/provider\s*=\s*"mysql"/.test(original)) {
|
|
throw new Error('Expected datasource provider "mysql" in schema.prisma');
|
|
}
|
|
const sqlite = original.replace(/provider\s*=\s*"mysql"/, 'provider = "sqlite"');
|
|
const banner = '// AUTO-GENERATED from schema.prisma by scripts/make-sqlite-schema.mjs — do not edit.\n';
|
|
writeFileSync(dest, banner + sqlite);
|
|
console.log(`Wrote ${dest} (sqlite provider) from schema.prisma`);
|