Add dedicated Drizzle config files for sqlite and postgres and generate new migration outputs for each dialect. Update migrate scripts to load env files and auto-pick the correct config unless explicitly provided, and tighten API auth handling by using shared auth context helpers and enforcing userId checks when auth is enabled.
33 lines
1 KiB
JavaScript
33 lines
1 KiB
JavaScript
import { spawnSync } from 'node:child_process';
|
|
import path from 'node:path';
|
|
import fs from 'node:fs';
|
|
import * as dotenv from 'dotenv';
|
|
|
|
function loadEnvFiles() {
|
|
// Approximate Next.js behavior enough for server-side scripts.
|
|
// Load .env first, then .env.local (local overrides).
|
|
const cwd = process.cwd();
|
|
const envPath = path.join(cwd, '.env');
|
|
const envLocalPath = path.join(cwd, '.env.local');
|
|
|
|
if (fs.existsSync(envPath)) {
|
|
dotenv.config({ path: envPath });
|
|
}
|
|
if (fs.existsSync(envLocalPath)) {
|
|
dotenv.config({ path: envLocalPath, override: true });
|
|
}
|
|
}
|
|
|
|
loadEnvFiles();
|
|
|
|
const extraArgs = process.argv.slice(2);
|
|
const hasConfigArg = extraArgs.includes('--config');
|
|
const configFile = process.env.POSTGRES_URL ? 'drizzle.config.pg.ts' : 'drizzle.config.sqlite.ts';
|
|
const configArgs = hasConfigArg ? [] : ['--config', configFile];
|
|
|
|
const result = spawnSync('drizzle-kit', ['migrate', ...configArgs, ...extraArgs], {
|
|
stdio: 'inherit',
|
|
env: process.env,
|
|
});
|
|
|
|
process.exit(result.status ?? 1);
|