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.js'; import path from 'node:path'; import fs from 'node:fs'; import { fileURLToPath } from 'node:url'; const __dirname = path.dirname(fileURLToPath(import.meta.url)); const dbPath = process.env.DATABASE_PATH || './ka-note.db'; // Ensure parent directory exists fs.mkdirSync(path.dirname(dbPath), { recursive: true }); console.log('[db] Opening database at:', dbPath); const sqlite = new Database(dbPath); console.log('[db] Database opened successfully'); sqlite.pragma('journal_mode = WAL'); sqlite.pragma('foreign_keys = ON'); export const db = drizzle(sqlite, { schema }); export { sqlite }; // Run migrations on startup const migrationsFolder = path.resolve(__dirname, '../../drizzle'); migrate(db, { migrationsFolder }); console.log(`Database connected: ${dbPath}`);