aboutsummaryrefslogtreecommitdiffstats
path: root/packages/queue/db.ts
blob: f1412fef97f28d339a78c743fc3e5d8aef6dc8b3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import path from "node:path";
import Database from "better-sqlite3";
import { BetterSQLite3Database, drizzle } from "drizzle-orm/better-sqlite3";
import { migrate } from "drizzle-orm/better-sqlite3/migrator";

import * as schema from "./schema";

export function buildDBClient(dbPath: string, runMigrations = false) {
  const sqlite = new Database(dbPath);
  const db = drizzle(sqlite, { schema });
  if (runMigrations) {
    migrateDB(db);
  }
  return db;
}

export function migrateDB(db: BetterSQLite3Database<typeof schema>) {
  migrate(db, { migrationsFolder: path.join(__dirname, "drizzle") });
}