Files
HolodoriCalc/src/lib/server/db/client.ts
T

25 lines
734 B
TypeScript

import { env } from '$env/dynamic/private';
import { mkdirSync } from 'node:fs';
import { dirname } from 'node:path';
import Database from 'better-sqlite3';
import { drizzle } from 'drizzle-orm/better-sqlite3';
import { migrate } from 'drizzle-orm/better-sqlite3/migrator';
import { sql } from 'drizzle-orm';
const databaseUrl = env.DATABASE_URL ?? './data/holodream.db';
if (databaseUrl !== ':memory:') {
mkdirSync(dirname(databaseUrl), { recursive: true });
}
const sqlite = new Database(databaseUrl);
sqlite.pragma('journal_mode = WAL');
sqlite.pragma('foreign_keys = ON');
export const db = drizzle(sqlite);
migrate(db, { migrationsFolder: './drizzle' });
export function checkDatabase(): void {
db.run(sql`select 1`);
}