mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-12 01:36:43 +02:00
feat: Implement database initialization script and Drizzle ORM connection setup.
This commit is contained in:
1 parent
8902b535a8
commit
8fae4391a2
2 files changed
+17
-8
No files matched your search
+7
-1
@@ -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
@@ -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!");
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user