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), },});
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),
},
});