From cd5ae0f69fc53397e2b6eb4924cb428ee31993e2 Mon Sep 17 00:00:00 2001 From: michivonah Date: Sat, 13 Sep 2025 18:18:35 +0200 Subject: [PATCH] improve db client + add separate dev db --- README.md | 2 +- api/drizzle-dev.config.ts | 15 +++++++++++++++ api/{drizzle.config.ts => drizzle-prod.config.ts} | 0 api/src/db/client.ts | 12 +++++++++++- api/wrangler.jsonc | 1 + 5 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 api/drizzle-dev.config.ts rename api/{drizzle.config.ts => drizzle-prod.config.ts} (100%) diff --git a/README.md b/README.md index 45ffe3f..052848a 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ DB scheme is defined in typescript apply changes ```bash -npx drizzle-kit push +npx drizzle-kit push --config=drizzle-dev.config.ts ``` ## Cloudflare workers tricks diff --git a/api/drizzle-dev.config.ts b/api/drizzle-dev.config.ts new file mode 100644 index 0000000..c7c335d --- /dev/null +++ b/api/drizzle-dev.config.ts @@ -0,0 +1,15 @@ +import 'dotenv/config'; +import { defineConfig } from 'drizzle-kit'; + +export default defineConfig({ + out: './drizzle', + schema: './src/db/schema.ts', + dialect: 'sqlite', + driver: 'd1-http', + dbCredentials: { + accountId: process.env.CLOUDFLARE_ACCOUNT_ID!, + databaseId: process.env.CLOUDFLARE_DATABASE_ID_DEV!, + token: process.env.CLOUDFLARE_D1_TOKEN!, + }, + casing: "snake_case", +}); diff --git a/api/drizzle.config.ts b/api/drizzle-prod.config.ts similarity index 100% rename from api/drizzle.config.ts rename to api/drizzle-prod.config.ts diff --git a/api/src/db/client.ts b/api/src/db/client.ts index 6e8f398..a5aaa7a 100644 --- a/api/src/db/client.ts +++ b/api/src/db/client.ts @@ -1,8 +1,18 @@ import { drizzle } from 'drizzle-orm/d1'; import type { Context } from 'hono'; -export function dbConn(c: Context){ +export interface Env { + d1_db: D1Database; +} + +export function getDbContext(c: Context){ return drizzle(c.env.d1_db, { casing: 'snake_case' }) +} + +export function getDbEnv(env: Env){ + return drizzle(env.d1_db, { + casing: 'snake_case' + }) } \ No newline at end of file diff --git a/api/wrangler.jsonc b/api/wrangler.jsonc index cda9660..7bcf14e 100644 --- a/api/wrangler.jsonc +++ b/api/wrangler.jsonc @@ -26,6 +26,7 @@ "binding": "d1_db", "database_name": "themepark-assistant", "database_id": "59680d24-f3c4-4bb6-b856-ad8c2b6bca3f", + "preview_database_id": "03294d21-460e-43aa-8e9e-a2d0221936ca", "migrations_dir": "drizzle/migrations" } ],