refactor: explicit migrate/seed scripts, no auto-init at server start
Auto-running migrations on every server boot is dangerous — a broken migration silently corrupts data or blocks server start. Now require explicit `npm run migrate && npm run seed:permissions` before start. Boot asserts schema exists (users + role_permissions tables) and fails fast with a clear message otherwise. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+13
-3
@@ -1,9 +1,19 @@
|
||||
const config = require('./config'); // validates .env, fails fast on error
|
||||
const logger = require('./utils/logger'); // structured logging
|
||||
|
||||
require('./db/migrate'); // авто-миграция при каждом старте
|
||||
const { seedDefaults: seedPermissions } = require('./controllers/permissionsController');
|
||||
seedPermissions();
|
||||
/* ── Schema check — fail fast if migrate hasn't been run ── */
|
||||
const _bootDb = require('./db/db');
|
||||
try {
|
||||
_bootDb.prepare('SELECT 1 FROM users LIMIT 1').get();
|
||||
_bootDb.prepare('SELECT 1 FROM role_permissions LIMIT 1').get();
|
||||
} catch (e) {
|
||||
process.stderr.write(
|
||||
'[boot] FATAL: schema not initialized.\n' +
|
||||
'Run: npm run migrate && npm run seed:permissions\n'
|
||||
);
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
const express = require('express');
|
||||
const cors = require('cors');
|
||||
const path = require('path');
|
||||
|
||||
Reference in New Issue
Block a user