Stop and remove current Nextcloud docker services:
docker stop nextcloud-app
docker stop nextcloud-www
docker stop nextcloud-postgres
docker stop nextcloud-redis
docker rm nextcloud-app
docker rm nextcloud-www
docker rm nextcloud-postgres
docker rm nextcloud-redis
docker stop nextcloud-www
docker stop nextcloud-postgres
docker stop nextcloud-redis
docker rm nextcloud-app
docker rm nextcloud-www
docker rm nextcloud-postgres
docker rm nextcloud-redis
Run only old PostgreSQL database container using "docker compose --build"
docker compose -f /root/docker-compose-nextcloud.yml up --build nextcloud-postgres -d
Dump old PostgreSQL database content to SQL file:
docker exec -it nextcloud-postgres pg_dumpall -U nextcloud > /data/nextcloud-postgres-2024-10-18.sql
Stop old PostgreSQL docker database:
docker stop nextcloud-postgres
Create directory for new database content:
mkdir /data/nextcloud-postgresql17-data64
Change docker compose YAML file, change database version from 16 to 17 and point new directory for database content
nextcloud-postgres:
container_name: nextcloud-postgres
hostname: nextcloud-postgres
image: postgres:17-alpine
restart: always
volumes:
- /data/nextcloud-postgresql17-data64:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
container_name: nextcloud-postgres
hostname: nextcloud-postgres
image: postgres:17-alpine
restart: always
volumes:
- /data/nextcloud-postgresql17-data64:/var/lib/postgresql/data
environment:
- POSTGRES_PASSWORD=
- POSTGRES_DB=nextcloud
- POSTGRES_USER=nextcloud
Run only database container (version 17) using "docker compose --build"
docker compose -f /root/docker-compose-nextcloud.yml up --build nextcloud-postgres -d
Import SQL file to new database
docker exec -i nextcloud-postgres psql -U nextcloud < /data/nextcloud-postgres-2024-10-18.sql
Start all Nextcloud docker services
docker compose -f /root/docker-compose-nextcloud.yml up -d