homeio
PublicForked from doctor-io/homeio
drizzle.config.ts
import type { Config } from "drizzle-kit";
import fs from "node:fs";
import path from "node:path";
import { parseEnvFileContent } from "./lib/shared/env-file";
const DEFAULT_DATABASE_URL =
"postgresql://postgres:postgres@127.0.0.1:5432/home_server";
function readDatabaseUrlFromEnvFile(filePath: string) {
if (!fs.existsSync(filePath)) return null;
const env = parseEnvFileContent(fs.readFileSync(filePath, "utf8"));
return env.DATABASE_URL || null;
}
function resolveDatabaseUrl() {
if (process.env.DATABASE_URL) return process.env.DATABASE_URL;
const cwd = process.cwd();
const envCandidates = [".env.local", ".env"];
for (const envFile of envCandidates) {
const resolved = readDatabaseUrlFromEnvFile(path.join(cwd, envFile));
if (resolved) return resolved;
}
return DEFAULT_DATABASE_URL;
}
export default {
schema: "./lib/server/db/schema.ts",
out: "./drizzle",
dialect: "postgresql",
schemaFilter: ["public"],
dbCredentials: {
url: resolveDatabaseUrl(),
},
} satisfies Config;