Stop weblate docker compose down
Database
Backup database volume
Backup database data before doing anting.
Create volume for backup docker volume create weblate_postgres-data_bak
Copy data:
docker container run --rm -it -v weblate_postgres-data:/from -v weblate_postgres-data_bak:/to ubuntu bash
apt update && apt -y install rsync
rsync -va /from/ /to
exit
Upgrade postgreSQL
Backup data from PostgreSQL 16
docker run -it --rm -v weblate_postgres-data-16:/var/lib/postgresql/data -v ./backup:/backup --name weblate_db_migration --env-file ./environment postgres:16-alpine
# Start new terminal
docker exec -it weblate_db_migration bash
chown postgres:postgres /backup/
su postgres
pg_dumpall -v -U weblate > /backup/weblate.sql
# exit container and terminal
# exit postgres 16
Restore data in PostgreSQL 17
docker volume create weblate_postgres-data-17
docker run -it --rm -v weblate_postgres-data-17:/var/lib/postgresql/data -v ./backup:/backup --name weblate_db_migration --env-file ./environment postgres:17-alpine
# Start new terminal
docker exec -it weblate_db_migration bash
su postgres
psql -v -d weblate -U weblate < /backup/weblate.sql
# exit container and terminal
#exit postgres17
Update docker file
-
open
docker-compose.yml
-
Change volume name to
postgres-data-17
in section and volumes -
start weblate
docker compose up