diff --git a/doc/manual.md b/doc/manual.md new file mode 100644 index 0000000..a613734 --- /dev/null +++ b/doc/manual.md @@ -0,0 +1,62 @@ +# 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``` + + + +