feat: Implement database initialization script and Drizzle ORM connection setup.

This commit is contained in:
Michael committed 2026-03-10 11:11:27 +01:00
1 parent 8902b535a8
commit 8fae4391a2
2 files changed
+17 -8

No files matched your search

+7 -1
View File
@@ -6,7 +6,7 @@ const cwd = path.resolve(__dirname, '..'); // get app root when inside /scripts
async function main() {
console.log("[DB Init] Starting database migration & initialization...");
let connectionString = process.env.DATABASE_URL;
let connectionString = "";
try {
const CONFIG_PATH = path.join(cwd, "data", ".db-config.json");
@@ -21,6 +21,12 @@ async function main() {
console.error("[DB Init] Error reading .db-config.json", e);
}
// Force environment variable if present (for Docker/DevOps consistency)
if (process.env.DATABASE_URL) {
connectionString = process.env.DATABASE_URL;
console.log("[DB Init] Using environment variable DATABASE_URL (Priority).");
}
if (!connectionString) {
console.warn("[DB Init] No DATABASE_URL found in env or config. Skipping push.");
process.exit(0);
+10 -7
View File
@@ -18,10 +18,7 @@ function maskUrl(url: string | undefined) {
export function getDb() {
if (currentDb) return currentDb;
let connectionString = process.env.DATABASE_URL;
console.log("[DB] Initializing connection...");
console.log("[DB] Env DATABASE_URL:", maskUrl(process.env.DATABASE_URL));
let connectionString = "";
try {
const CONFIG_PATH = path.join(process.cwd(), "data", ".db-config.json");
@@ -30,15 +27,21 @@ export function getDb() {
const config = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8"));
if (config.url) {
connectionString = config.url;
console.log("[DB] Using saved database URL:", maskUrl(connectionString));
console.log("[DB] Loaded saved database URL from config.");
}
} else {
console.log("[DB] No saved config file found. Using environment variable.");
}
} catch (err) {
console.error("[DB] Error reading config file:", err);
}
// IMPORTANT: Environment variable MUST take precedence in container environments
if (process.env.DATABASE_URL) {
connectionString = process.env.DATABASE_URL;
console.log("[DB] Using environment variable (優先度高).");
}
console.log("[DB] Initializing connection with:", maskUrl(connectionString));
if (!connectionString) {
console.error("[DB] CRITICAL: No database connection string available!");
}