aboutsummaryrefslogtreecommitdiffstats
path: root/packages/db/drizzle.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/db/drizzle.ts')
-rw-r--r--packages/db/drizzle.ts20
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;
+}