Files
eveAI/scripts/db_backup.sh
Josako 37819cd7e5 - Correctie reset password en confirm email adress by adapting the prefixed_url_for to use config setting
- Adaptation of DPA and T&Cs
- Refer to privacy statement as DPA, not a privacy statement
- Startup of enforcing signed DPA and T&Cs
- Adaptation of eveai_chat_client to ensure we retrieve correct DPA & T&Cs
2025-10-13 14:28:09 +02:00

102 lines
2.4 KiB
Bash
Executable File

#!/bin/bash
# Configuration
DEV_DB_HOST="db"
DEV_DB_PORT="5432"
DEV_DB_NAME="eveai"
DEV_DB_USER="luke"
DEV_DB_PASSWORD="Skywalker!"
PROD_DB_HOST="bswnz4.stackhero-network.com"
PROD_DB_PORT="5945"
PROD_DB_NAME="eveai"
PROD_DB_USER="luke_skywalker"
PROD_DB_PASSWORD="2MK&1rHmWEydE2rFuJLq*ls%tdkPAk2"
# Create backup directory if it doesn't exist
BACKUP_DIR="./db_backups"
mkdir -p "$BACKUP_DIR"
# Get current date for backup file name
DATE=$(date +"%Y%m%d_%H%M%S")
# Function to check if pg_dump is available
check_pg_dump() {
if ! command -v pg_dump &> /dev/null; then
echo "Error: pg_dump is not installed. Please install PostgreSQL client tools."
exit 1
fi
}
# Function to create backup
create_backup() {
local env=$1
local host=$2
local port=$3
local db=$4
local user=$5
local password=$6
# Set backup filename
local backup_file="${BACKUP_DIR}/eveai_${env}_backup_${DATE}.sql"
echo "Creating backup for ${env} environment..."
echo "Backing up to: ${backup_file}"
# Set PGPASSWORD environment variable
export PGPASSWORD="$password"
# Create backup using pg_dump
pg_dump -h "$host" -p "$port" -U "$user" -d "$db" -F p > "$backup_file"
# Check if backup was successful
if [ $? -eq 0 ]; then
echo "Backup completed successfully!"
echo "Backup file: ${backup_file}"
# Create compressed version
gzip -f "$backup_file"
echo "Compressed backup created: ${backup_file}.gz"
else
echo "Error: Backup failed!"
rm -f "$backup_file" # Clean up failed backup file
exit 1
fi
# Unset PGPASSWORD for security
unset PGPASSWORD
}
# Function to display usage
usage() {
echo "Usage: $0 [dev|prod]"
echo " dev - backup development database"
echo " prod - backup production database"
exit 1
}
# Main script logic
main() {
# Check for pg_dump
check_pg_dump
# Check command line arguments
if [ $# -ne 1 ]; then
usage
fi
case "$1" in
"dev")
create_backup "dev" "$DEV_DB_HOST" "$DEV_DB_PORT" "$DEV_DB_NAME" "$DEV_DB_USER" "$DEV_DB_PASSWORD"
;;
"prod")
create_backup "prod" "$PROD_DB_HOST" "$PROD_DB_PORT" "$PROD_DB_NAME" "$PROD_DB_USER" "$PROD_DB_PASSWORD"
;;
*)
usage
;;
esac
}
# Run main function
main "$@"