mirror of
https://github.com/Dvorinka/SEEN.git
synced 2026-07-29 15:03:49 +00:00
small fix, don't worry about it
This commit is contained in:
Executable
+67
@@ -0,0 +1,67 @@
|
||||
#!/bin/sh
|
||||
# Database Restore Script for SEEN
|
||||
# Restores database from a backup file
|
||||
|
||||
set -e
|
||||
|
||||
# Check if backup file is provided
|
||||
if [ -z "$1" ]; then
|
||||
echo "Usage: $0 <backup_file.sql.gz>"
|
||||
echo ""
|
||||
echo "Available backups:"
|
||||
ls -lh /backups/seen_backup_*.sql.gz 2>/dev/null || echo "No backups found"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
BACKUP_FILE="$1"
|
||||
|
||||
# Check if backup file exists
|
||||
if [ ! -f "${BACKUP_FILE}" ]; then
|
||||
echo "ERROR: Backup file not found: ${BACKUP_FILE}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "[$(date)] Starting database restore from: ${BACKUP_FILE}"
|
||||
echo "WARNING: This will overwrite the current database!"
|
||||
read -p "Are you sure you want to continue? (yes/no): " CONFIRM
|
||||
|
||||
if [ "${CONFIRM}" != "yes" ]; then
|
||||
echo "Restore cancelled"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Drop existing connections
|
||||
echo "[$(date)] Terminating existing connections..."
|
||||
PGPASSWORD="${POSTGRES_PASSWORD}" psql \
|
||||
-h "${POSTGRES_HOST}" \
|
||||
-U "${POSTGRES_USER}" \
|
||||
-d postgres \
|
||||
-c "SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname = '${POSTGRES_DB}' AND pid <> pg_backend_pid();"
|
||||
|
||||
# Drop and recreate database
|
||||
echo "[$(date)] Recreating database..."
|
||||
PGPASSWORD="${POSTGRES_PASSWORD}" psql \
|
||||
-h "${POSTGRES_HOST}" \
|
||||
-U "${POSTGRES_USER}" \
|
||||
-d postgres \
|
||||
-c "DROP DATABASE IF EXISTS ${POSTGRES_DB};"
|
||||
|
||||
PGPASSWORD="${POSTGRES_PASSWORD}" psql \
|
||||
-h "${POSTGRES_HOST}" \
|
||||
-U "${POSTGRES_USER}" \
|
||||
-d postgres \
|
||||
-c "CREATE DATABASE ${POSTGRES_DB};"
|
||||
|
||||
# Restore backup
|
||||
echo "[$(date)] Restoring backup..."
|
||||
gunzip -c "${BACKUP_FILE}" | PGPASSWORD="${POSTGRES_PASSWORD}" psql \
|
||||
-h "${POSTGRES_HOST}" \
|
||||
-U "${POSTGRES_USER}" \
|
||||
-d "${POSTGRES_DB}"
|
||||
|
||||
if [ $? -eq 0 ]; then
|
||||
echo "[$(date)] Restore completed successfully!"
|
||||
else
|
||||
echo "[$(date)] ERROR: Restore failed!"
|
||||
exit 1
|
||||
fi
|
||||
Reference in New Issue
Block a user