migrate_course_sys/scripts/check-migrations.mjs

14 lines
650 B
JavaScript

import { readdirSync, readFileSync } from 'node:fs';
import assert from 'node:assert/strict';
const files = readdirSync('.').filter(f => f.endsWith('.sql')).sort();
assert(files.length > 0, 'No migrations');
const versions = new Set();
for (const file of files) {
const match = /^(\d+)_[a-z0-9_]+\.up\.sql$/.exec(file);
assert(match, `Invalid migration filename: ${file}`);
assert(!versions.has(match[1]), `Duplicate version: ${file}`);
versions.add(match[1]);
assert(readFileSync(file, 'utf8').trim(), `Empty migration: ${file}`);
}
console.log(`${files.length} migration files checked (structure only; MySQL execution still required).`);