#!/bin/sh set -eu cd "$(dirname "$0")/../.." previous_env=${1:-} if [ -z "$previous_env" ] || [ ! -r "$previous_env" ]; then echo "Usage: $0 /secure/path/previous-release.env" >&2 exit 64 fi if [ "${SCHEMA_BACKWARD_COMPATIBLE_CONFIRMED:-false}" != "true" ]; then echo "Refusing rollback: set SCHEMA_BACKWARD_COMPATIBLE_CONFIRMED=true after migration review." >&2 exit 64 fi ./scripts/validate-env "$previous_env" docker compose --env-file "$previous_env" config --quiet docker compose --env-file "$previous_env" up -d --remove-orphans docker compose --env-file "$previous_env" ps echo "Application images rolled back without Alembic downgrade." echo "Run deployment/scripts/smoke.sh with ENV_FILE=$previous_env and verify outbox/inbox idempotency."