diff --git a/scripts/postgres_12_to_14_upgrade.sh b/scripts/postgres_12_to_14_upgrade.sh index cac450cee..6f1f6d461 100755 --- a/scripts/postgres_12_to_14_upgrade.sh +++ b/scripts/postgres_12_to_14_upgrade.sh @@ -1,54 +1,45 @@ -##!/bin/sh +#!/bin/sh set -e -## This script upgrades the postgres from version 12 to 14 +echo "Do not stop in the middle of this upgrade, wait until you see the message: Upgrade complete." -## Make sure everything is started -sudo docker-compose start +echo "Make sure postgres is started..." +sudo docker-compose up -d postgres +sleep 20s -# Export the DB echo "Exporting the Database to 12_14.dump.sql ..." sudo docker-compose exec -T postgres pg_dumpall -c -U lemmy > 12_14_dump.sql echo "Done." -# Stop everything -sudo docker-compose stop +echo "Stopping postgres..." +sudo docker-compose stop postgres +sleep 20s -sleep 10s - -# Delete the folder echo "Removing the old postgres folder" sudo rm -rf volumes/postgres -# Change the version in your docker-compose.yml echo "Updating docker-compose to use postgres version 14." sed -i "s/postgres:12-alpine/postgres:14-alpine/" ./docker-compose.yml -# Start up postgres echo "Starting up new postgres..." sudo docker-compose up -d postgres - -# Sleep for a bit so it can start up, build the new folders sleep 20s -# Import the DB echo "Importing the database...." cat 12_14_dump.sql | sudo docker-compose exec -T postgres psql -U lemmy echo "Done." POSTGRES_PASSWORD=$(grep "POSTGRES_PASSWORD" ./docker-compose.yml | cut -d"=" -f2) -# Fix weird password issue with postgres 14 echo "Fixing a weird password issue with postgres 14" sudo docker-compose exec -T postgres psql -U lemmy -c "alter user lemmy with password '$POSTGRES_PASSWORD'" sudo docker-compose restart postgres -# Just in case +echo "Setting correct perms for pictrs folder" sudo chown -R 991:991 volumes/pictrs -# Start up the rest of lemmy -echo "Starting up lemmy" +echo "Starting up lemmy..." sudo docker-compose up -d -# Delete the DB Dump? Probably safe to keep it echo "A copy of your old database is at 12_14.dump.sql . You can delete this file if the upgrade went smoothly." +echo "Upgrade complete."