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

65 lines
1.7 KiB
Markdown

# 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
## Recommended upgrade order
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:
```bash
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:
```bash
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:
```bash
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
```bash
RELEASE_VERSION=1.26.1 docker compose up -d backend frontend
```
## 5. Verify
```bash
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.