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:
Maxim Dolgolyov
2026-05-06 16:53:37 +03:00
parent d9e9e65328
commit 09b80ca78a
3 changed files with 18 additions and 3 deletions
+13 -3
View File
@@ -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');