I successfully migrated postgres 15 to 16. I followed the general idea of the guide you posted, but I found it a little easier to do a slightly different process. Here's what I did:
docker-compose down
for the lemmy instance
2. edit the docker-compose.yml
file and comment out all of the services except postgres. In addition, add a new volume to the postgres service that looks something like this: - ./volumes/miscfiles:/miscfiles
- edit the
docker-compose.yml
file and add a new volume to the postgres service that looks something like this: - ./volumes/miscfiles:/miscfiles
docker-compose up -d postgres
(this starts just the postgres
service from the docker compose file)
docker exec -it [container name] pg_dumpall -U [username] -f /miscfiles/pgdumpall20240628
(I think this will work, but it's not exactly what I did... rather, I ran docker exec -it [container name] bash
, and then ran pgdumpall -U [username] -f /miscfiles/pgdumpall20240628
. The end result is a dumpall file saved in the ./volumes/miscfiles
directory on the host machine)
docker-compose down
mv ./volumes/postgres ./volumes/postgresBAK20240628
(move your existing postgres data to a new directory for backup purposes)
mkdir ./volumes/postgres
(re-create an empty postgres data folder. make sure the owner and permissions match the postgresBAK20240628
directory)
- edit the
docker-compose.yml
and update the postgres image tag to the new version
docker-compose up -d postgres
(you'll now have a brand new postgres container running with the new version)
docker-exec -it [container name] psql -U [username] -f /miscfiles/pgdumpall20240628
(again, I think this will work, but I bash
ed in and ran the command from within the container. This also allows you to watch the file execute all of the commands... I don't know if it will do that if you run it from the host.)
docker-compose down
12. edit the docker-compose.yml
and un-comment all of the other services that you commented out in step 2
docker-compose up -d
Hopefully that helps anyone that might need it!
edited to reflect the comment below