diff --git a/api/bun.lockb b/api/bun.lockb index 41765e9f..355cc64a 100755 Binary files a/api/bun.lockb and b/api/bun.lockb differ diff --git a/api/drizzle.config.ts b/api/drizzle.config.ts new file mode 100644 index 00000000..147548b8 --- /dev/null +++ b/api/drizzle.config.ts @@ -0,0 +1,10 @@ +import { defineConfig } from "drizzle-kit"; + +export default defineConfig({ + out: "./drizzle", + schema: "./src/db/schema.ts", + dialect: "postgresql", + dbCredentials: { + url: process.env.DATABASE_URL!, + }, +}); diff --git a/api/package.json b/api/package.json index 6af484fe..1e3a9830 100644 --- a/api/package.json +++ b/api/package.json @@ -9,6 +9,7 @@ }, "dependencies": { "@elysiajs/swagger": "^1.1.5", + "drizzle-kit": "^0.26.2", "drizzle-orm": "^0.35.3", "elysia": "latest", "pg": "^8.13.1" diff --git a/api/src/index.ts b/api/src/index.ts index ed69c0b7..f43b0f3b 100644 --- a/api/src/index.ts +++ b/api/src/index.ts @@ -1,5 +1,16 @@ import { Elysia } from "elysia"; import { swagger } from "@elysiajs/swagger"; +import { drizzle } from "drizzle-orm/node-postgres"; +import { migrate } from "drizzle-orm/node-postgres/migrator"; + +if (!process.env.DATABASE_URL) { + console.error("Missing `DATABASE_URL` environment variable. Exiting"); + process.exit(1); +} + +const db = drizzle(process.env.DATABASE_URL); + +await migrate(db, { migrationsFolder: "" }); const app = new Elysia() .use(swagger())