import fs from 'fs' import path from 'path' const inputPath = process.argv[2] const outputPath = process.argv[3] if (!inputPath || !outputPath) { console.error('Usage: node generate-drop.js ') process.exit(1) } const input = fs.readFileSync(path.resolve(inputPath), 'utf8') const tableRegex = /CREATE TABLE IF NOT EXISTS "([^"]+)"/g const tables = [] let match while ((match = tableRegex.exec(input)) !== null) { tables.push(match[1]) } const uniqueTables = Array.from(new Set(tables)) const drops = [ 'PRAGMA foreign_keys=OFF;', 'BEGIN TRANSACTION;' ] // Drop in reverse order of creation for (const table of uniqueTables.reverse()) { drops.push(`DROP TABLE IF EXISTS "${table}";`) } drops.push('COMMIT;') fs.writeFileSync(path.resolve(outputPath), drops.join('\n') + '\n', 'utf8') console.log(`Wrote ${outputPath} with ${uniqueTables.length} DROP statements`)