From 6fbcc8768a0901862830f66648c8f58ee10326dc Mon Sep 17 00:00:00 2001 From: Yury Kossakovsky Date: Thu, 25 Dec 2025 19:21:46 -0700 Subject: [PATCH] fix: add database name variables for backward compatibility existing installations use 'postgres' database to preserve data new installations use service-specific databases (postiz, waha, lightrag) --- .env.example | 7 +++++++ docker-compose.yml | 6 +++--- scripts/03_generate_secrets.sh | 22 ++++++++++++++++++++++ 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/.env.example b/.env.example index c4ae2ba..c8971e3 100644 --- a/.env.example +++ b/.env.example @@ -323,6 +323,13 @@ POSTGRES_DB=postgres POSTGRES_PORT=5432 POSTGRES_USER=postgres +# Service-specific database names +# New installations use dedicated databases per service +# Existing installations may use 'postgres' for backward compatibility +POSTIZ_DB_NAME=postiz +WAHA_DB_NAME=waha +LIGHTRAG_DB_NAME=lightrag + ############ # Supavisor -- Database pooler and others that can be left as default values ############ diff --git a/docker-compose.yml b/docker-compose.yml index 02f0992..973e43d 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -784,7 +784,7 @@ services: environment: <<: *proxy-env BACKEND_INTERNAL_URL: http://postiz:3000 - DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/postiz" + DATABASE_URL: "postgresql://postgres:${POSTGRES_PASSWORD}@postgres:5432/${POSTIZ_DB_NAME:-postiz}?schema=postiz" DISABLE_REGISTRATION: ${POSTIZ_DISABLE_REGISTRATION} FRONTEND_URL: ${POSTIZ_HOSTNAME:+https://}${POSTIZ_HOSTNAME} IS_GENERAL: "true" # Required for self-hosting. @@ -933,7 +933,7 @@ services: WAHA_DASHBOARD_PASSWORD: ${WAHA_DASHBOARD_PASSWORD} WAHA_DASHBOARD_USERNAME: ${WAHA_DASHBOARD_USERNAME} WAHA_ENGINE: ${WAHA_ENGINE} - WHATSAPP_SESSIONS_POSTGRESQL_URL: postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/waha?sslmode=disable + WHATSAPP_SESSIONS_POSTGRESQL_URL: postgres://postgres:${POSTGRES_PASSWORD}@postgres:5432/${WAHA_DB_NAME:-waha}?sslmode=disable WHATSAPP_SWAGGER_ENABLED: ${WHATSAPP_SWAGGER_ENABLED:-true} WHATSAPP_SWAGGER_PASSWORD: ${WHATSAPP_SWAGGER_PASSWORD} WHATSAPP_SWAGGER_USERNAME: ${WHATSAPP_SWAGGER_USERNAME} @@ -1139,7 +1139,7 @@ services: POSTGRES_PORT: 5432 POSTGRES_USER: postgres POSTGRES_PASSWORD: ${POSTGRES_PASSWORD} - POSTGRES_DATABASE: lightrag + POSTGRES_DATABASE: ${LIGHTRAG_DB_NAME:-lightrag} POSTGRES_MAX_CONNECTIONS: 12 POSTGRES_VECTOR_INDEX_TYPE: HNSW POSTGRES_HNSW_M: 16 diff --git a/scripts/03_generate_secrets.sh b/scripts/03_generate_secrets.sh index e8a0b7b..95a6898 100755 --- a/scripts/03_generate_secrets.sh +++ b/scripts/03_generate_secrets.sh @@ -281,6 +281,28 @@ for var in "${EMAIL_VARS[@]}"; do generated_values["$var"]="$USER_EMAIL" done +# Database names for backward compatibility +# New installations: use service-specific databases (postiz, waha, lightrag) +# Upgrades: use 'postgres' to preserve existing data +DB_MIGRATION_VARS=("POSTIZ_DB_NAME" "WAHA_DB_NAME" "LIGHTRAG_DB_NAME") + +for var in "${DB_MIGRATION_VARS[@]}"; do + if [[ -z "${existing_env_vars[$var]}" ]]; then + # Variable not in existing .env + if [[ ${#existing_env_vars[@]} -gt 0 ]]; then + # This is an upgrade - .env exists but var is missing + # Use 'postgres' for backward compatibility + generated_values["$var"]="postgres" + else + # New installation - use service name + case "$var" in + "POSTIZ_DB_NAME") generated_values["$var"]="postiz" ;; + "WAHA_DB_NAME") generated_values["$var"]="waha" ;; + "LIGHTRAG_DB_NAME") generated_values["$var"]="lightrag" ;; + esac + fi + fi +done # Create a temporary file for processing TMP_ENV_FILE=$(mktemp)