pixies
Publikgenerate-migrations.js
import fs from 'node:fs';
import path from 'node:path';
const migrationsDir = path.join(import.meta.dirname, '..', 'server', 'migrations');
const outputFile = path.join(migrationsDir, 'index.js');
const files = fs.readdirSync(migrationsDir)
.filter(f => /^\d{4}-.+\.js$/.test(f))
.sort();
if (files.length === 0) {
console.error('No migration files found in server/migrations/');
process.exit(1);
}
const imports = files.map((file) => {
const varName = `m${file.slice(0, 4)}`;
return `import { up as ${varName} } from './${file}';`;
}).join('\n');
const entries = files.map((file) => {
const varName = `m${file.slice(0, 4)}`;
return ` { name: '${file}', up: ${varName} },`;
}).join('\n');
const output = `${imports}
const migrations = [
${entries}
];
export default migrations;
`;
fs.writeFileSync(outputFile, output);
console.log(`Generated ${outputFile} with ${files.length} migration(s)`);