fix: adding db recovery practices (bye bye db)
This commit is contained in:
@@ -27,6 +27,8 @@ jobs:
|
||||
|
||||
- name: Deploy with Docker Compose
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
# Deploy directory
|
||||
APP_DIR=/opt/skymoney
|
||||
mkdir -p $APP_DIR
|
||||
@@ -47,14 +49,29 @@ jobs:
|
||||
|
||||
cd $APP_DIR
|
||||
|
||||
# Keep a stable compose project name to avoid accidental new resource names
|
||||
export COMPOSE_PROJECT_NAME=skymoney
|
||||
|
||||
# Validate migration target before touching containers
|
||||
export EXPECTED_PROD_DB_HOST="${EXPECTED_PROD_DB_HOST:-postgres}"
|
||||
export EXPECTED_PROD_DB_NAME="${EXPECTED_PROD_DB_NAME:-skymoney}"
|
||||
./scripts/validate-prod-db-target.sh
|
||||
|
||||
# Build and start all services
|
||||
sudo docker-compose up -d --build
|
||||
sudo -E docker-compose up -d --build
|
||||
|
||||
# Wait for database to be ready
|
||||
sleep 10
|
||||
|
||||
# Mandatory pre-migration backup
|
||||
BACKUP_ENFORCE_TARGET_CHECK=1 \
|
||||
EXPECTED_PROD_DB_HOST="$EXPECTED_PROD_DB_HOST" \
|
||||
EXPECTED_PROD_DB_NAME="$EXPECTED_PROD_DB_NAME" \
|
||||
BACKUP_DIR=/opt/skymoney/backups \
|
||||
./scripts/backup.sh
|
||||
|
||||
# Run Prisma migrations inside the API container
|
||||
sudo docker-compose exec -T api npx prisma migrate deploy
|
||||
sudo -E docker-compose exec -T api npx prisma migrate deploy
|
||||
|
||||
- name: Reload Nginx
|
||||
run: sudo systemctl reload nginx
|
||||
|
||||
Reference in New Issue
Block a user