Files
dbis_core/scripts/fix-database-url.sh
2026-03-02 12:14:07 -08:00

51 lines
1.7 KiB
Bash
Executable File

#!/bin/bash
# Fix DATABASE_URL in .env file
ENV_FILE=".env"
BACKUP_FILE=".env.backup.$(date +%Y%m%d_%H%M%S)"
if [ ! -f "$ENV_FILE" ]; then
echo "❌ .env file not found"
exit 1
fi
# Backup original
cp "$ENV_FILE" "$BACKUP_FILE"
echo "✅ Backed up .env to $BACKUP_FILE"
# Check if DATABASE_URL needs fixing
if grep -q "DATABASE_URL=postgresql://user:password@host:port/database" "$ENV_FILE"; then
echo "⚠️ Found placeholder DATABASE_URL. Please provide the correct connection string."
echo ""
echo "Expected format: postgresql://user:password@host:port/database"
echo ""
read -p "Enter database host [192.168.11.100]: " DB_HOST
DB_HOST=${DB_HOST:-192.168.11.100}
read -p "Enter database port [5432]: " DB_PORT
DB_PORT=${DB_PORT:-5432}
read -p "Enter database name [dbis_core]: " DB_NAME
DB_NAME=${DB_NAME:-dbis_core}
read -p "Enter database user [dbis]: " DB_USER
DB_USER=${DB_USER:-dbis}
read -sp "Enter database password: " DB_PASS
echo ""
# URL encode password (basic - handles most cases)
DB_PASS_ENCODED=$(echo "$DB_PASS" | sed 's/:/%3A/g; s/@/%40/g; s/#/%23/g; s/\//%2F/g; s/\?/%3F/g; s/&/%26/g; s/=/%3D/g')
NEW_URL="postgresql://${DB_USER}:${DB_PASS_ENCODED}@${DB_HOST}:${DB_PORT}/${DB_NAME}"
# Replace the line
sed -i "s|DATABASE_URL=.*|DATABASE_URL=${NEW_URL}|" "$ENV_FILE"
echo "✅ DATABASE_URL updated in .env file"
echo " Connection: postgresql://${DB_USER}:***@${DB_HOST}:${DB_PORT}/${DB_NAME}"
else
echo "✅ DATABASE_URL appears to be set (not a placeholder)"
echo " Current value: $(grep '^DATABASE_URL' "$ENV_FILE" | sed 's/:[^:@]*@/:***@/g')"
fi