fix: DATABASE_URL error on setup
This commit is contained in:
@ -2,18 +2,43 @@ import { drizzle } from "drizzle-orm/postgres-js";
|
||||
import postgres from "postgres";
|
||||
import * as schema from "./schema";
|
||||
|
||||
if (!process.env.DATABASE_URL) {
|
||||
throw new Error("DATABASE_URL is not set");
|
||||
// Create a lazy database instance that only initializes when accessed
|
||||
let _db: ReturnType<typeof drizzle> | null = null;
|
||||
|
||||
function getDb() {
|
||||
if (!process.env.DATABASE_URL) {
|
||||
throw new Error("DATABASE_URL is not set");
|
||||
}
|
||||
|
||||
if (!_db) {
|
||||
const client = postgres(process.env.DATABASE_URL);
|
||||
_db = drizzle(client, { schema });
|
||||
}
|
||||
|
||||
return _db;
|
||||
}
|
||||
|
||||
// Create the postgres client
|
||||
const client = postgres(process.env.DATABASE_URL);
|
||||
|
||||
// Create the drizzle instance
|
||||
export const db = drizzle(client, { schema });
|
||||
// Export a proxy that forwards all calls to the actual db instance
|
||||
export const db = new Proxy({} as ReturnType<typeof drizzle>, {
|
||||
get(target, prop) {
|
||||
return getDb()[prop as keyof typeof _db];
|
||||
},
|
||||
});
|
||||
|
||||
// Re-export schema for convenience
|
||||
export * from "./schema";
|
||||
|
||||
// Re-export drizzle-orm functions to ensure version consistency
|
||||
export { eq, and, or, not, isNull, isNotNull, inArray, notInArray, exists, notExists, sql } from "drizzle-orm";
|
||||
export {
|
||||
eq,
|
||||
and,
|
||||
or,
|
||||
not,
|
||||
isNull,
|
||||
isNotNull,
|
||||
inArray,
|
||||
notInArray,
|
||||
exists,
|
||||
notExists,
|
||||
sql,
|
||||
} from "drizzle-orm";
|
||||
|
Reference in New Issue
Block a user