postgres
postgres copied to clipboard
Change `PGDATA` in 17+ to `/var/lib/postgresql/MAJOR/docker`
This is a pretty large breaking change, which is why this only makes the change in 17+ (which is currently in pre-release stages, and not due for GA until September, and pre-release PGDATA
directories are officially not supported on the GA release anyhow).
Concretely, this changes PGDATA
to /var/lib/postgresql/MAJOR/docker
, which matches the pre-existing convention/standard of the pg_ctlcluster
/postgresql-common
set of commands, and frankly is what we should've done to begin with, in a classic case of Chesterton's Fence.
This also changes the VOLUME
to /var/lib/postgresql
, which should be more reasonable, and make the upgrade constraints more obvious.
For any users who have been testing the pre-releases, the simplest way to keep your existing data directory is going to be to add PGDATA=/var/lib/postgresql/data
as an environment variable on your container or adjust your bind-mount from /var/lib/postgresql/data
to /var/lib/postgresql/17/docker
, but the best way is going to be to refactor your host directory such that your data lives at 17/docker
inside and you can then mount directly to /var/lib/postgresql
(possibly setting PGDATA=/var/lib/postgresql/MAJOR/docker
as well, if you want to go overboard on being explicit).