1.7 KiB
1.7 KiB
TurfTracking 1.26.1 Upgrade
Scope
Release 1.26.1 includes schema migrations through V22__add_email_tokens_and_notification_log.sql.
Preserve the production database
- Do not run
docker compose down -v - Do not delete the Postgres volume
- Keep the existing
postgres_datavolume attached to thedbservice
Recommended upgrade order
- Back up the production database
- Load the release images on the production host
- Run Flyway migrations against the existing database
- Restart backend and frontend
- Verify health and application login
1. Back up the database
Example:
docker compose exec -T db pg_dump -U "$DB_USER" -d "$DB_NAME" > turftracker-pre-1.26.1.sql
2. Load the release images
Example:
docker load -i turftracking-backend-1.26.1.tar.gz
docker load -i turftracking-frontend-1.26.1.tar.gz
3. Run migrations
Use the production compose file and the existing database volume:
RELEASE_VERSION=1.26.1 docker compose --profile migrate run --rm flyway
If the production database has never had Flyway metadata before, FLYWAY_BASELINE_ON_MIGRATE=true is already enabled in docker-compose.yml, so Flyway will baseline and then apply versioned migrations.
4. Restart application services
RELEASE_VERSION=1.26.1 docker compose up -d backend frontend
5. Verify
docker compose ps
docker compose logs --tail=200 backend
curl -f https://turftracker.kaspers.us/health || true
Rollback note
Application containers can be rolled back by loading older images and restarting services, but schema changes are forward-only. That is why the database backup is mandatory before applying migrations.