Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Switch PostgreSQL container to use pgautoupgrade #4892

Merged
merged 5 commits into from
Jul 17, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .woodpecker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -306,7 +306,7 @@ steps:

services:
database:
image: postgres:16-alpine
image: pgautoupgrade/pgautoupgrade:16-alpine
environment:
POSTGRES_USER: lemmy
POSTGRES_PASSWORD: password
2 changes: 1 addition & 1 deletion docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,7 +97,7 @@ services:
logging: *default-logging

postgres:
image: postgres:16-alpine
image: pgautoupgrade/pgautoupgrade:16-alpine
# this needs to match the database host in lemmy.hson
# Tune your settings via
# https://pgtune.leopard.in.ua/#/
Expand Down
2 changes: 1 addition & 1 deletion docker/federation/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ x-lemmy-default: &lemmy-default
restart: always

x-postgres-default: &postgres-default
image: postgres:16-alpine
image: pgautoupgrade/pgautoupgrade:16-alpine
environment:
- POSTGRES_USER=lemmy
- POSTGRES_PASSWORD=password
Expand Down
44 changes: 2 additions & 42 deletions scripts/postgres_12_to_15_upgrade.sh
Original file line number Diff line number Diff line change
@@ -1,48 +1,8 @@
#!/bin/sh
set -e

echo "Do not stop in the middle of this upgrade, wait until you see the message: Upgrade complete."

echo "Stopping lemmy and all services..."
sudo docker-compose stop

echo "Make sure postgres is started..."
sudo docker-compose up -d postgres
sleep 20s

echo "Exporting the Database to 12_15.dump.sql ..."
sudo docker-compose exec -T postgres pg_dumpall -c -U lemmy > 12_15_dump.sql
echo "Done."

echo "Stopping postgres..."
sudo docker-compose stop postgres
sleep 20s

echo "Removing the old postgres folder"
sudo rm -rf volumes/postgres

echo "Updating docker-compose to use postgres version 15."
sed -i "s/image: postgres:.*/image: postgres:15-alpine/" ./docker-compose.yml

echo "Starting up new postgres..."
sudo docker-compose up -d postgres
sleep 20s

echo "Importing the database...."
cat 12_15_dump.sql | sudo docker-compose exec -T postgres psql -U lemmy
echo "Done."

POSTGRES_PASSWORD=$(grep "POSTGRES_PASSWORD" ./docker-compose.yml | cut -d"=" -f2)

echo "Fixing a weird password issue with postgres 15"
sudo docker-compose exec -T postgres psql -U lemmy -c "alter user lemmy with password '$POSTGRES_PASSWORD'"
sudo docker-compose restart postgres

echo "Setting correct perms for pictrs folder"
sudo chown -R 991:991 volumes/pictrs
echo "Updating docker-compose to use postgres version 16."
sudo sed -i "s/image: .*postgres:.*/image: pgautoupgrade\/pgautoupgrade:16-alpine/" ./docker-compose.yml

echo "Starting up lemmy..."
sudo docker-compose up -d

echo "A copy of your old database is at 12_15.dump.sql . You can delete this file if the upgrade went smoothly."
echo "Upgrade complete."
40 changes: 3 additions & 37 deletions scripts/postgres_15_to_16_upgrade.sh
Original file line number Diff line number Diff line change
@@ -1,42 +1,8 @@
#!/bin/sh
set -e

echo "Do not stop in the middle of this upgrade, wait until you see the message: Upgrade complete."

echo "Stopping lemmy and all services..."
sudo docker compose stop

echo "Make sure postgres is started..."
sudo docker compose up -d postgres
echo "Waiting..."
sleep 20s

echo "Exporting the Database to 15_16.dump.sql ..."
sudo docker compose exec -T postgres pg_dumpall -c -U lemmy | sudo tee 15_16_dump.sql > /dev/null
echo "Done."

echo "Stopping postgres..."
sudo docker compose stop postgres
echo "Waiting..."
sleep 20s

echo "Removing the old postgres folder"
sudo rm -rf volumes/postgres

echo "Updating docker compose to use postgres version 16."
sudo sed -i "s/image: .*postgres:.*/image: docker.io\/postgres:16-alpine/" ./docker-compose.yml

echo "Starting up new postgres..."
sudo docker compose up -d postgres
echo "Waiting..."
sleep 20s

echo "Importing the database...."
sudo cat 15_16_dump.sql | sudo docker compose exec -T postgres psql -U lemmy
echo "Done."
echo "Updating docker-compose to use postgres version 16."
sudo sed -i "s/image: .*postgres:.*/image: pgautoupgrade\/pgautoupgrade:16-alpine/" ./docker-compose.yml

echo "Starting up lemmy..."
sudo docker compose up -d

echo "A copy of your old database is at 15_16.dump.sql . You can delete this file if the upgrade went smoothly."
echo "Upgrade complete."
sudo docker-compose up -d