homeserver/doc/manual.md
2024-05-17 09:09:46 +02:00

1.6 KiB

Manual and Help

Upgrade Postgrs to newer Version (i.e. 15 to 16)

1. Copy Service

1.1 Copy whole service definition in docker-compose.yaml
1.2 Rename old service to *-old
1.3 Move path from new service to i.e postgres16
1.4 Set postgres version explicit to new version

Example:

  databasedb-old:
    image: postgres:${POSTGRES_VERSION}
    volumes:
      - ${VOLUMES_PATH}/databasedb:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

  databasedb:
    image: postgres:16
    volumes:
      - ${VOLUMES_PATH}/databasedb16:/var/lib/postgresql/data
    environment:
      - POSTGRES_DB=${POSTGRES_DB}
      - POSTGRES_USER=${POSTGRES_USER}
      - POSTGRES_PASSWORD=${POSTGRES_PASSWORD}

2. Move data

Backup data from service one to new servic with the following command:

docker exec old-service pg_dumpall -U dbuser | docker exec -i new-service psql -U dbuser -d database

3. Set password

docker exec -i monitoring-databasedb-1 psql -U dbuser -d database -c "ALTER USER \"dbuser\" PASSWORD 'secret';"

4. Test

docker compose up -d and check if service is correctly running.

5. Cleanup

5.1 Remove old service in docker-compose.yaml
5.2 Set explicit version again to ${POSTGRES_VERSION} and adopt .env file
5.4 remove old volume dir

6. May be move Data dir

6.1. docker compose down
6.2 mv /mnt/dockervolumes/databasedb16 /mnt/dockervolumes/databasedb
6.3 docker-compose.yaml anpassen
6.1. docker compose up -d