import Database from 'better-sqlite3'; import { drizzle } from 'drizzle-orm/better-sqlite3'; import { migrate } from 'drizzle-orm/better-sqlite3/migrator'; import * as schema from './schema'; import path from 'path'; import fs from 'fs'; const dbPath = path.join(process.cwd(), 'data', 'battery_tracker.db'); // Ensure data directory exists const dataDir = path.dirname(dbPath); if (!fs.existsSync(dataDir)) { fs.mkdirSync(dataDir, { recursive: true }); } const sqlite = new Database(dbPath); sqlite.pragma('foreign_keys = ON'); const db = drizzle(sqlite, { schema }); // Run migrations console.log('Running migrations...'); migrate(db, { migrationsFolder: './drizzle' }); console.log('Migrations complete.'); // Seed default battery types const defaultTypes = ['AA', 'AAA', '18650', 'CR2032', '9V', 'C', 'D', '14500', '16340', '21700']; console.log('Seeding default battery types...'); for (const typeName of defaultTypes) { try { db.insert(schema.batteryTypes).values({ name: typeName, isCustom: false }).run(); console.log(` Added: ${typeName}`); } catch { // Already exists, skip console.log(` Skipped (exists): ${typeName}`); } } console.log('Seed complete!'); sqlite.close();