Upgrading Postgres
parent
efd3c89494
commit
3057d13a12
50
Upgrade-Postgres-%28Major-Versions%29.md
Normal file
50
Upgrade-Postgres-%28Major-Versions%29.md
Normal file
@ -0,0 +1,50 @@
|
||||
Upgrading postgres is done via a backup/restore operation.
|
||||
|
||||
The easiest way to upgrade is (example, upgrade from Postgresl 15 to Postgres 17):
|
||||
|
||||
* Stop all services
|
||||
* Move existing database into a directory, eg: `mv postgres postgres.15`
|
||||
* Update the `docker-compose` file
|
||||
|
||||
```yaml
|
||||
postgres_old:
|
||||
image: postgres:15-alpine
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 512M
|
||||
environment:
|
||||
POSTGRES_DB: ${DB_DATABASE:-clrghouz}
|
||||
POSTGRES_USER: ${DB_USERNAME:-clrghouz}
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
shm_size: 1g
|
||||
volumes:
|
||||
- ${VOL_PREFIX:-/srv/docker/clrghouz}/postgres.15:/var/lib/postgresql/data
|
||||
|
||||
postgres:
|
||||
image: postgres:17-alpine
|
||||
deploy:
|
||||
resources:
|
||||
limits:
|
||||
memory: 512M
|
||||
environment:
|
||||
POSTGRES_DB: ${DB_DATABASE:-clrghouz}
|
||||
POSTGRES_USER: ${DB_USERNAME:-clrghouz}
|
||||
POSTGRES_PASSWORD: ${DB_PASSWORD}
|
||||
shm_size: 1g
|
||||
volumes:
|
||||
- ${VOL_PREFIX:-/srv/docker/clrghouz}/postgres.17:/var/lib/postgresql/data
|
||||
```
|
||||
|
||||
Start the environment, and stop all the containers except the two database environments (postgres_15,postgres).
|
||||
|
||||
Export the database out of the old environment and into the new, where:
|
||||
|
||||
* `2b5fae8b7394` is the container ID of the old database (postgres.15)
|
||||
* `08cb53dfa922` is the container ID of the new database (postgres)
|
||||
|
||||
`docker exec -t 2b5fae8b7394 pg_dumpall -U ${DB_DATABASE:-clrghouz} | docker exec -i 08cb53dfa922 psql -U ${DB_DATABASE:-clrghouz}`
|
||||
|
||||
The old DB can now be stopped, and the old DB configuration in the `docker-compose` file can be commented out.
|
||||
|
||||
In case something goes pear shaped, the old database is still there if you need to revert to it (it wasnt affected by this operation).
|
Loading…
Reference in New Issue
Block a user