# PostgreSQL Major Version Upgrade (v13 to v15) Upgrading PostgreSQL from version 13 to 15 is a major version jump. Since PostgreSQL does not support in-place data directory upgrades, existing users must manually migrate their data using `pg_dump`. ### **Migration Steps** 1. **Backup Existing Data (Version 13):** Before updating your compose file, ensure your containers are running and perform a dump of all databases. ```bash docker exec -it -db-1 pg_dumpall -U postgres > full_dump.sql ``` 2. **Stop and Remove Containers:** ```bash docker compose down ``` 3. **Delete Old Data Volume:** PostgreSQL 15 cannot read data created by version 13. You must remove the existing volume (Warning: this deletes the old data directory). ```bash docker volume rm _db-data ``` 4. **Update Image and Start (Version 15):** Update your `overrides/compose.postgres.yaml` (or pull the latest changes) and start the containers. ```bash docker compose up -d ``` 5. **Restore Data:** Restore the dump into the new PostgreSQL 15 instance. ```bash cat full_dump.sql | docker exec -i -db-1 psql -U postgres ``` 6. **Verify and Clean Up:** Ensure your sites are working correctly with `bench migrate` and then remove the `full_dump.sql` file. ```bash docker exec -it -backend-1 bench --site all migrate ```