62 lines
1.9 KiB
Plaintext
62 lines
1.9 KiB
Plaintext
|
|
To upgrade postgresql
|
|
---------------------
|
|
|
|
# example below uses vaultwarden as the app with db user "vaultwarden" and db name "vaultwarden"
|
|
# all commands are executed from docker shell, unless stated otherwise
|
|
|
|
# stop vaultwarden
|
|
cd /opt/stacks/vaultwarden
|
|
docker compose down
|
|
|
|
# start postgresql
|
|
cd /opt/stacks/vaultwarden
|
|
docker compose up -d postgresql
|
|
|
|
# dump database
|
|
cd /opt/stacks/vaultwarden
|
|
mkdir /mnt/data/vaultwarden/pgbackups/$(date -I)
|
|
docker exec vaultwarden-postgresql-1 pg_dumpall -U vaultwarden > /mnt/data/vaultwarden/pgbackups/$(date -I)/vaultwarden-backup.sql
|
|
chown -R postgres:postgres /mnt/data/vaultwarden/pgbackups/$(date -I)
|
|
chmod -R 700 /mnt/data/vaultwarden/pgbackups/$(date -I)
|
|
|
|
# stop postgresql
|
|
cd /opt/stacks/vaultwarden
|
|
docker compose down postgresql
|
|
|
|
# rename pgdata (we don't delete yet; in order to have a rollback option)
|
|
# in Truenas shell, enter
|
|
zfs rename SSD1/docker/data/vaultwarden/pgdata SSD1/docker/data/vaultwarden/pgdata-old
|
|
|
|
# create new pgdata dataset
|
|
# in Truenas shell, enter
|
|
zfs create SSD1/docker/data/vaultwarden/pgdata
|
|
chown -R postgres:postgres /mnt/SSD1/docker/data/vaultwarden/pgdata
|
|
chmod 700 /mnt/SSD1/docker/data/vaultwarden/pgdata
|
|
|
|
# edit the vaultwarden compose.yml file to the new version of the postgresql image
|
|
# -- snip --
|
|
postgresql:
|
|
image: postgres:17-alpine
|
|
# -- snip --
|
|
|
|
# pull image
|
|
docker compose pull
|
|
|
|
# start new postgresql container
|
|
docker compose up -d postgresql
|
|
|
|
# import database dump
|
|
cat /mnt/data/vaultwarden/pgbackups/$(date -I)/vaultwarden-backup.sql | docker exec -i vaultwarden-postgresql-1 psql -U vaultwarden
|
|
|
|
# stop postgresql
|
|
cd /opt/stacks/vaultwarden
|
|
docker compose down postgresql
|
|
|
|
# start stack
|
|
cd /opt/stacks/vaultwarden
|
|
docker compose up -d
|
|
|
|
# Check if all is ok
|
|
# Log into vaultwarden as check if all looks ok
|
|
# If ok, delete the pgdata-old dataset using Truenas GUI, or later (after confidence is high enough) |