feat(server): also support individual DB environment variables instead of DATABASE_URL
This commit is contained in:
parent
32262db3dd
commit
b435437ad3
|
|
@ -1,5 +1,14 @@
|
||||||
# Core Configuration
|
# Core Configuration
|
||||||
|
# Option 1: Use DATABASE_URL (takes priority if set)
|
||||||
DATABASE_URL=postgresql://readur:readur_password@localhost:5432/readur
|
DATABASE_URL=postgresql://readur:readur_password@localhost:5432/readur
|
||||||
|
|
||||||
|
# Option 2: Use individual PostgreSQL environment variables
|
||||||
|
# (Only used if DATABASE_URL is not set)
|
||||||
|
# POSTGRES_HOST=localhost
|
||||||
|
# POSTGRES_PORT=5432
|
||||||
|
# POSTGRES_DB=readur
|
||||||
|
# POSTGRES_USER=readur
|
||||||
|
# POSTGRES_PASSWORD=readur_password
|
||||||
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
|
JWT_SECRET=your-super-secret-jwt-key-change-this-in-production
|
||||||
SERVER_ADDRESS=0.0.0.0:8000
|
SERVER_ADDRESS=0.0.0.0:8000
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -58,10 +58,62 @@ impl Config {
|
||||||
val
|
val
|
||||||
}
|
}
|
||||||
Err(_) => {
|
Err(_) => {
|
||||||
let default_url = "postgresql://readur:readur@localhost/readur".to_string();
|
// Try to construct from individual env vars
|
||||||
println!("⚠️ DATABASE_URL: {} (using default - env var not set)",
|
let db_host = env::var("POSTGRES_HOST").unwrap_or_else(|_| "localhost".to_string());
|
||||||
"postgresql://readur:***@localhost/readur");
|
let db_port = env::var("POSTGRES_PORT").unwrap_or_else(|_| "5432".to_string());
|
||||||
default_url
|
let db_name = env::var("POSTGRES_DB").unwrap_or_else(|_| "readur".to_string());
|
||||||
|
let db_user = env::var("POSTGRES_USER").unwrap_or_else(|_| "readur".to_string());
|
||||||
|
let db_password = env::var("POSTGRES_PASSWORD").unwrap_or_else(|_| "readur".to_string());
|
||||||
|
|
||||||
|
// Check if any individual env vars were set
|
||||||
|
let using_individual_vars = env::var("POSTGRES_HOST").is_ok()
|
||||||
|
|| env::var("POSTGRES_PORT").is_ok()
|
||||||
|
|| env::var("POSTGRES_DB").is_ok()
|
||||||
|
|| env::var("POSTGRES_USER").is_ok()
|
||||||
|
|| env::var("POSTGRES_PASSWORD").is_ok();
|
||||||
|
|
||||||
|
if using_individual_vars {
|
||||||
|
println!("📊 Constructing DATABASE_URL from individual environment variables:");
|
||||||
|
if env::var("POSTGRES_HOST").is_ok() {
|
||||||
|
println!(" ✅ POSTGRES_HOST: {}", db_host);
|
||||||
|
} else {
|
||||||
|
println!(" ⚠️ POSTGRES_HOST: {} (using default)", db_host);
|
||||||
|
}
|
||||||
|
if env::var("POSTGRES_PORT").is_ok() {
|
||||||
|
println!(" ✅ POSTGRES_PORT: {}", db_port);
|
||||||
|
} else {
|
||||||
|
println!(" ⚠️ POSTGRES_PORT: {} (using default)", db_port);
|
||||||
|
}
|
||||||
|
if env::var("POSTGRES_DB").is_ok() {
|
||||||
|
println!(" ✅ POSTGRES_DB: {}", db_name);
|
||||||
|
} else {
|
||||||
|
println!(" ⚠️ POSTGRES_DB: {} (using default)", db_name);
|
||||||
|
}
|
||||||
|
if env::var("POSTGRES_USER").is_ok() {
|
||||||
|
println!(" ✅ POSTGRES_USER: {}", db_user);
|
||||||
|
} else {
|
||||||
|
println!(" ⚠️ POSTGRES_USER: {} (using default)", db_user);
|
||||||
|
}
|
||||||
|
if env::var("POSTGRES_PASSWORD").is_ok() {
|
||||||
|
println!(" ✅ POSTGRES_PASSWORD: ***hidden*** ({} chars)", db_password.len());
|
||||||
|
} else {
|
||||||
|
println!(" ⚠️ POSTGRES_PASSWORD: using default");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
let constructed_url = format!(
|
||||||
|
"postgresql://{}:{}@{}:{}/{}",
|
||||||
|
db_user, db_password, db_host, db_port, db_name
|
||||||
|
);
|
||||||
|
|
||||||
|
if using_individual_vars {
|
||||||
|
println!("🔗 Constructed DATABASE_URL: postgresql://{}:***@{}:{}/{}",
|
||||||
|
db_user, db_host, db_port, db_name);
|
||||||
|
} else {
|
||||||
|
println!("⚠️ DATABASE_URL: postgresql://readur:***@localhost:5432/readur (using all defaults - no env vars set)");
|
||||||
|
}
|
||||||
|
|
||||||
|
constructed_url
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue