const fs = require('fs'); const path = require('path'); const readline = require('readline'); const slugify = require('slugify'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout, }); function generateTimestamp() { const now = new Date(); const year = now.getFullYear(); const month = String(now.getMonth() + 1).padStart(2, '0'); const day = String(now.getDate()).padStart(2, '0'); const hours = String(now.getHours()).padStart(2, '0'); const minutes = String(now.getMinutes()).padStart(2, '0'); const seconds = String(now.getSeconds()).padStart(2, '0'); return `${year}${month}${day}${hours}${minutes}${seconds}`; } async function createMigration() { try { const migrationName = await new Promise((resolve) => { rl.question('Enter migration name: ', resolve); }); const timestamp = generateTimestamp(); const fileName = `${timestamp}_${slugify(String(migrationName), { lower: true })}.sql`; const migrationsDir = path.join(__dirname, '../crates/yaak-models/migrations'); const filePath = path.join(migrationsDir, fileName); if (!fs.existsSync(migrationsDir)) { fs.mkdirSync(migrationsDir, { recursive: true }); } fs.writeFileSync(filePath, '-- Add migration SQL here\n'); console.log(`Created migration file: ${fileName}`); } catch (error) { console.error('Error creating migration:', error); } finally { rl.close(); } } createMigration().catch(console.error);