import Database from "better-sqlite3"; import { drizzle } from "drizzle-orm/better-sqlite3"; import * as schema from "./schema.js"; export * from "./schema.js"; // Re-export the query helpers consumers need, so they don't depend on // drizzle-orm directly (it's an implementation detail of this package). export { eq, ne, and, or, asc, desc, gt, gte, lt, lte, isNull, isNotNull, inArray, sql } from "drizzle-orm"; /** * Open the local SQLite database in WAL mode. WAL allows many concurrent readers * plus one writer — a parking workload never approaches SQLite's single-writer * limit. See wiki/entities/sqlite.md. */ export function createDb(url = process.env.DATABASE_URL ?? "./parking.sqlite") { const sqlite = new Database(url); sqlite.pragma("journal_mode = WAL"); sqlite.pragma("foreign_keys = ON"); return drizzle(sqlite, { schema }); } export type Db = ReturnType;