24 lines · 1.0 KB · TypeScript
RawDownload
import { defineConfig } from "drizzle-kit"; // drizzle-kit studio reads `dbCredentials.url`; everything else (generate,// migrate) ignores it. Default to the local PGlite socket started by// `bun run dev:db`; override via `DATABASE_URL` for prod studio sessions.// drizzle-kit uses node-postgres (`pg`) for studio and the `ssl` option in// dbCredentials doesn't reliably reach the pool - append `sslmode=require`// directly to the URL instead, which `pg` honours.const DEFAULT_DEV_URL = "postgresql://postgres:postgres@127.0.0.1:5433/postgres"; const withSslMode = (url: string): string => {  if (url.includes("127.0.0.1") || url.includes("localhost")) return url;  if (/[?&]sslmode=/.test(url)) return url;  return url + (url.includes("?") ? "&" : "?") + "sslmode=require";}; export default defineConfig({  schema: ["./src/db/schema.ts", "./src/db/executor-schema.ts"],  out: "./drizzle",  dialect: "postgresql",  dbCredentials: {    url: withSslMode(process.env.DATABASE_URL ?? DEFAULT_DEV_URL),  },});