mirror of
https://github.com/R0m1k3/CollectFlow.git
synced 2026-10-23 15:08:12 +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() {
|
async function main() {
|
||||||
console.log("[DB Init] Starting database migration & initialization...");
|
console.log("[DB Init] Starting database migration & initialization...");
|
||||||
let connectionString = process.env.DATABASE_URL;
|
let connectionString = "";
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const CONFIG_PATH = path.join(cwd, "data", ".db-config.json");
|
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);
|
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) {
|
if (!connectionString) {
|
||||||
console.warn("[DB Init] No DATABASE_URL found in env or config. Skipping push.");
|
console.warn("[DB Init] No DATABASE_URL found in env or config. Skipping push.");
|
||||||
process.exit(0);
|
process.exit(0);
|
||||||
|
|||||||
+10
-7
@@ -18,10 +18,7 @@ function maskUrl(url: string | undefined) {
|
|||||||
export function getDb() {
|
export function getDb() {
|
||||||
if (currentDb) return currentDb;
|
if (currentDb) return currentDb;
|
||||||
|
|
||||||
let connectionString = process.env.DATABASE_URL;
|
let connectionString = "";
|
||||||
|
|
||||||
console.log("[DB] Initializing connection...");
|
|
||||||
console.log("[DB] Env DATABASE_URL:", maskUrl(process.env.DATABASE_URL));
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const CONFIG_PATH = path.join(process.cwd(), "data", ".db-config.json");
|
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"));
|
const config = JSON.parse(fs.readFileSync(CONFIG_PATH, "utf-8"));
|
||||||
if (config.url) {
|
if (config.url) {
|
||||||
connectionString = 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) {
|
} catch (err) {
|
||||||
console.error("[DB] Error reading config file:", 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) {
|
if (!connectionString) {
|
||||||
console.error("[DB] CRITICAL: No database connection string available!");
|
console.error("[DB] CRITICAL: No database connection string available!");
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in new issue
Block a user