feat: add migration support for VPS deployment with backup functionality
This commit is contained in:
@@ -13,6 +13,7 @@ APP_DOMAIN="${APP_DOMAIN:-srv1.bayerischer-mittelstandspreis.de}"
|
||||
PUBLIC_URL="${PUBLIC_URL:-https://$APP_DOMAIN}"
|
||||
ALLOW_DIRTY="${ALLOW_DIRTY:-0}"
|
||||
DEPLOY_CADDY="${DEPLOY_CADDY:-0}"
|
||||
RUN_MIGRATIONS="${RUN_MIGRATIONS:-0}"
|
||||
SKIP_VERIFY="${SKIP_VERIFY:-0}"
|
||||
|
||||
SSH_TARGET="$SSH_USER@$VPS_HOST"
|
||||
@@ -53,7 +54,26 @@ ssh -i "$SSH_KEY" -p "$VPS_PORT" "$SSH_TARGET" "
|
||||
set -e
|
||||
cd '$APP_ROOT'
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' build app
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' up -d app
|
||||
if [ '$RUN_MIGRATIONS' = '1' ]; then
|
||||
backup_dir='$APP_ROOT/backups'
|
||||
backup_file=\"\$backup_dir/content-\$(date +%Y%m%d-%H%M%S)-pre-migrate.db\"
|
||||
|
||||
sudo install -d -o '$SSH_USER' -g '$SSH_USER' \"\$backup_dir\"
|
||||
|
||||
restart_app() {
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' up -d app >/dev/null
|
||||
}
|
||||
|
||||
trap restart_app EXIT
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' stop app >/dev/null
|
||||
cp -p '$APP_ROOT/shared/content.db' \"\$backup_file\"
|
||||
echo \"Created pre-migration backup: \$backup_file\"
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' run --rm --no-deps app pnpm payload migrate
|
||||
restart_app
|
||||
trap - EXIT
|
||||
else
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' up -d app
|
||||
fi
|
||||
if [ '$DEPLOY_CADDY' = '1' ]; then
|
||||
APP_ROOT='$APP_ROOT' APP_DOMAIN='$APP_DOMAIN' sudo docker compose -f '$COMPOSE_FILE' up -d caddy
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user