Summary
Every local and CI stack runs postgres:17-alpine; production runs postgres:16.14-alpine.
docker-compose.yml
test/e2e/compose.e2e.yaml
test/integration/hatchet/compose.hatchet.yaml
Why it matters
Migrations, advisory-lock behaviour, and planner-dependent queries are all exercised against a major version that is not the one in production. A regression that only manifests on 16.x cannot be caught by any current test.
Fix direction
Pin the test composes to the deployed major. If the intent is to test forward compatibility ahead of a 17 upgrade, run that as an explicit additional matrix leg rather than as the default.
Summary
Every local and CI stack runs
postgres:17-alpine; production runspostgres:16.14-alpine.docker-compose.ymltest/e2e/compose.e2e.yamltest/integration/hatchet/compose.hatchet.yamlWhy it matters
Migrations, advisory-lock behaviour, and planner-dependent queries are all exercised against a major version that is not the one in production. A regression that only manifests on 16.x cannot be caught by any current test.
Fix direction
Pin the test composes to the deployed major. If the intent is to test forward compatibility ahead of a 17 upgrade, run that as an explicit additional matrix leg rather than as the default.