/** * Rollback: Remove performance indexes * * This script removes the performance indexes created by add-performance-indexes.js * Use this if you need to drop the indexes for any reason. */ import Database from 'bun:sqlite'; import { join } from 'path'; async function rollback() { console.log('Starting rollback: Remove performance indexes...'); // Get the directory containing this migration file const __dirname = new URL('.', import.meta.url).pathname; const dbPath = join(__dirname, '../award.db'); const sqlite = new Database(dbPath); try { console.log('Dropping index: idx_qsos_user_band'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_user_band`); console.log('Dropping index: idx_qsos_user_mode'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_user_mode`); console.log('Dropping index: idx_qsos_user_confirmation'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_user_confirmation`); console.log('Dropping index: idx_qsos_duplicate_check'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_duplicate_check`); console.log('Dropping index: idx_qsos_lotw_confirmed'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_lotw_confirmed`); console.log('Dropping index: idx_qsos_dcl_confirmed'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_dcl_confirmed`); console.log('Dropping index: idx_qsos_qso_date'); sqlite.exec(`DROP INDEX IF EXISTS idx_qsos_qso_date`); sqlite.close(); console.log('\nRollback complete! Removed 7 performance indexes.'); console.log('\nTo verify indexes were dropped, run:'); console.log(' sqlite3 award.db ".indexes qsos"'); } catch (error) { console.error('Rollback failed:', error); process.exit(1); } } // Run rollback rollback().then(() => { console.log('\nRollback script completed successfully'); process.exit(0); });