Skip to content

v1.2.0 — pg-migrations job (opt-in)

Choose a tag to compare

@homelabforge homelabforge released this 05 May 17:42
· 16 commits to main since this release

What's new

New optional `pg-migrations` job in `python-react-ci.yml` that exercises the consumer's `docker-compose.test.yml` stack and runs `pytest tests/migrations/` against a real PostgreSQL sidecar.

Off by default, so this is non-breaking for consumers that bump to v1.2.0 without enabling it.

Why

mygarage v2.27.0-rc1 shipped migration 054 with two PG-only SQL bugs (`DATETIME` column type, `ADD CONSTRAINT IF NOT EXISTS`) that all CI runs ignored — the SQLite path is typeless and the existing PG path always called `Base.metadata.create_all` first, so the migration's literal SQL never executed against PG.

This job changes that: load a pre-migration `pg_dump` baseline into a clean PG schema, run the migration under test, assert the post-state on real PG.

Adoption

  • mygarage: opts in as part of v2.27.0-rc2.
  • familycircle, tidewatch, vulnforge, collectionsync: bump to `@v1.2.0` for the version-pin sync; opt in once you ship a `docker-compose.test.yml` and `backend/Dockerfile.test`.

Inputs (all optional, defaults match the mygarage pattern)

```yaml
enable-pg-migrations: true # gate, default false
pg-migrations-compose-file: docker-compose.test.yml
pg-migrations-service: mygarage-test
pg-migrations-pytest-path: tests/migrations/
```

Reference

  • mygarage rc2 plan: ${HOME}/.claude/plans (private) — Phase 4.5
  • Implementation: `.github/workflows/python-react-ci.yml` lines added under `pg-migrations:`