Skip to main content

nextcloud migration

Set system into maintenace mode

docker-compose exec --user www-data app php -d memory_limit=2048M occ maintenance:mode --on

Backup DB

# Backup
docker exec db /usr/bin/mysqldump -u root --password=secret nextcloud > backup.sql

docker exec db mysqldump --single-transaction -h localhost -u root -p[password] nextcloud > nextcloud-sqlbkp_`date +"%Y%m%d"`.bak

# Restore
cat backup.sql | docker exec -i CONTAINER /usr/bin/mysql -u root --password=secret DATABASE

Sync folders

rsync -Aavx data -e ssh bodo@super71.home:/var/lib/docker/data/
rsync -Aavx custom_apps -e ssh bodo@super71.home:/var/lib/docker/data/
rsync -Aavx themes -e ssh bodo@super71.home:/var/lib/docker/data/
rsync -Aavx config -e ssh bodo@super71.home:/var/lib/docker/data/

Restore

rsync -Aax /var/lib/docker/data/data/ /var/lib/docker/ /var/lib/docker/volumes/docker_nextcloud-data/_data/
rsync -Aax /var/lib/docker/data/custom_apps/ /var/lib/docker/volumes/docker_nextcloud-custom_apps/_data/
rsync -Aax /var/lib/docker/data/themes/ /var/lib/docker/volumes/docker_nextcloud-config/_data/www/nextcloud/themes
rsync -Aax /var/lib/docker/data/config/ /var/lib/docker/volumes/docker_nextcloud-config/_data/www/nextcloud/config

Drop DB

docker exec nextcloud-db mysql -h localhost -u root -p[password] -e "DROP DATABASE nextcloud"
docker exec nextcloud-db mysql -h localhost -u root -p[password] -e "CREATE DATABASE nextcloud"

Restore DB

docker exec nextcloud-db mysql -h localhost -u root -p[password] nextcloud < nextcloud-sqlbkp.bak

Set rights

docker-compose exec nextcloud chown -R 1002:1002 /config
docker-compose exec nextcloud chown -R 1002:1002 /data
docker-compose exec nextcloud chown -R 1002:1002 /custom_apps