diff options
| author | MohamedBassem <me@mbassem.com> | 2024-07-14 20:42:06 +0000 |
|---|---|---|
| committer | MohamedBassem <me@mbassem.com> | 2024-07-14 22:25:23 +0000 |
| commit | f77a41a75237b8c816e0c9ca7217dfacc32cc7d0 (patch) | |
| tree | 69557b2001183cd915a81e0ea9d276e10d262147 /packages/queue/db.ts | |
| parent | aa3dce09ff68c212ac1fad33adfbfaba96290a59 (diff) | |
| download | karakeep-f77a41a75237b8c816e0c9ca7217dfacc32cc7d0.tar.zst | |
chore: Add a new sqlite based queue package
Diffstat (limited to 'packages/queue/db.ts')
| -rw-r--r-- | packages/queue/db.ts | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/packages/queue/db.ts b/packages/queue/db.ts new file mode 100644 index 00000000..f1412fef --- /dev/null +++ b/packages/queue/db.ts @@ -0,0 +1,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") }); +} |
