← back to Handbag Auth Nextjs

auction-viewer/add-data-hash-migration.js

48 lines

const Database = require('better-sqlite3');
const path = require('path');

const DB_PATH = path.join(__dirname, '..', 'data', 'auction-history', 'auctions.db');

const db = new Database(DB_PATH);

console.log('Adding data_hash and updated_at columns...');

try {
  // Check if columns exist
  const tableInfo = db.prepare("PRAGMA table_info(auctions)").all();
  const hasDataHash = tableInfo.some(col => col.name === 'data_hash');
  const hasUpdatedAt = tableInfo.some(col => col.name === 'updated_at');

  if (!hasDataHash) {
    db.exec('ALTER TABLE auctions ADD COLUMN data_hash TEXT');
    console.log('✓ Added data_hash column');
  } else {
    console.log('⊘ data_hash column already exists');
  }

  if (!hasUpdatedAt) {
    db.exec('ALTER TABLE auctions ADD COLUMN updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP');
    console.log('✓ Added updated_at column');
  } else {
    console.log('⊘ updated_at column already exists');
  }

  // Create index on data_hash
  db.exec('CREATE INDEX IF NOT EXISTS idx_auctions_data_hash ON auctions(data_hash)');
  console.log('✓ Created index on data_hash');

  // Record this migration
  db.exec(`
    INSERT OR IGNORE INTO migrations (name)
    VALUES ('006_add_data_hash_and_updated_at')
  `);

  console.log('\nMigration completed successfully!');

} catch (error) {
  console.error('Error:', error.message);
  process.exit(1);
} finally {
  db.close();
}