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 services  database and volumes

  • start weblate docker compose up