Files
turftracker/docs/releases/1.26.1-upgrade.md
2026-04-09 13:19:47 -05:00

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_data volume attached to the db service
  1. Back up the production database
  2. Load the release images on the production host
  3. Run Flyway migrations against the existing database
  4. Restart backend and frontend
  5. 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.