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- 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
docker-compose up -d
for the lemmy instance (the only container running at this point will be postgres)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 randocker exec -it [container name] bash
, and then ranpgdumpall -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 thepostgresBAK20240628
directory)- edit the
docker-compose.yml
and update the postgres image tag to the new version docker-compose up -d
(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 Ibash
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
- 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!
ahhhh yes, that makes perfect sense… thank you for pointing that out! Especially since I’m not good enough with
vi
to know how to bulk delete the first character in specific lines, I had to manually arrow and delete.