diff options
Diffstat (limited to 'packages/db/drizzle.ts')
| -rw-r--r-- | packages/db/drizzle.ts | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/db/drizzle.ts b/packages/db/drizzle.ts new file mode 100644 index 00000000..4763d9d7 --- /dev/null +++ b/packages/db/drizzle.ts @@ -0,0 +1,20 @@ +import "dotenv/config"; +import { drizzle } from "drizzle-orm/better-sqlite3"; +import Database from "better-sqlite3"; +import * as schema from "./schema"; +import { migrate } from "drizzle-orm/better-sqlite3/migrator"; +import path from "path"; + +import dbConfig from "./drizzle.config"; + +const sqlite = new Database(dbConfig.dbCredentials.url); +export const db = drizzle(sqlite, { schema }); + +export function getInMemoryDB(runMigrations: boolean) { + const mem = new Database(":memory:"); + const db = drizzle(mem, { schema, logger: true }); + if (runMigrations) { + migrate(db, { migrationsFolder: path.resolve(__dirname, "./drizzle") }); + } + return db; +} |
