114 lines
No EOL
2.4 KiB
Markdown
114 lines
No EOL
2.4 KiB
Markdown
# upgrading postgresql on arch (in case you fucked up)
|
|
|
|
```sh
|
|
stop postgresql
|
|
stop akkoma # make sure nothing is trying to hit the database
|
|
```
|
|
|
|
## pg_upgrade will fail if you initdb with different params
|
|
|
|
so i'd made a file-level backup at least
|
|
|
|
```sh
|
|
sudo mv /var/lib/postgres/data /var/lib/postgres/olddata
|
|
```
|
|
|
|
i tried to
|
|
|
|
```
|
|
sudo mkdir /var/lib/postgres/data /var/lib/postgres/tmp
|
|
sudo chown postgres:postgres /var/lib/postgres/data /var/lib/postgres/tmp
|
|
|
|
sudo -iu postgres
|
|
cd /var/lib/postgres/tmp
|
|
initdb -D /var/lib/postgres/data --locale=en_US.UTF-8 --encoding=UTF8 --data-checksums
|
|
```
|
|
|
|
this caused pg_upgrade to fail because the old data didn't have `--data-checksums` enabled
|
|
|
|
## pg_dumpall will fail with extensions like rum
|
|
|
|
ok so that didn't work, let's try the manual dump and reload. exit out of the postgres session and back to your user
|
|
|
|
```sh
|
|
yay -S postgresql-old-upgrade
|
|
sudo rm -r /var/lib/postgres/data
|
|
sudo mkdir /var/lib/postgres/data
|
|
sudo chown -R postgres:postgres /var/lib/postgres/data
|
|
|
|
sudo -iu postgres
|
|
initdb -D /var/lib/postgres/data
|
|
/opt/pgsql-14/bin/pg_ctl -D /var/lib/postgres/olddata/ start
|
|
```
|
|
|
|
the old version should be running now
|
|
|
|
```sh
|
|
pg_dumpall -h /tmp -f /tmp/old_backup.sql
|
|
```
|
|
|
|
aaaaand this failed because of something to do with pg_rum
|
|
|
|
## downgrading to get a good dump
|
|
|
|
ok let's kill the old postgres
|
|
|
|
```sh
|
|
sudo killall postgres
|
|
```
|
|
|
|
copy the old data over and set permissions
|
|
|
|
```sh
|
|
sudo rm -r /var/lib/postgres/data
|
|
sudo cp -r /var/lib/postgres/olddata /var/lib/postgres/data
|
|
sudo chown -R postgres:postgres /var/lib/postgres/data
|
|
```
|
|
|
|
downgrade to the last version of postgres
|
|
|
|
```sh
|
|
yay -S downgrade
|
|
sudo downgrade postgresql
|
|
start postgresql
|
|
```
|
|
|
|
dump
|
|
|
|
```sh
|
|
pg_dumpall > /tmp/dumpall.sql
|
|
```
|
|
|
|
now we can upgrade again?
|
|
|
|
```sh
|
|
stop postgresql
|
|
yay -S postgresql
|
|
yay -S pg_rum # do a clean build?
|
|
```
|
|
|
|
now we try to restore data
|
|
|
|
```
|
|
sudo rm -r /var/lib/postgres/data
|
|
sudo mkdir /var/lib/postgres/data
|
|
sudo chown -R postgres:postgres /var/lib/postgres/data
|
|
|
|
sudo -Hu postgres initdb -D /var/lib/postgres/data --locale=en_US.UTF-8 --encoding=UTF8 --data-checksums
|
|
|
|
start postgresql
|
|
|
|
sudo -Hu postgres psql -f /tmp/dumpall.sql template1
|
|
```
|
|
|
|
this worked for me
|
|
|
|
## etc
|
|
|
|
while you're here you might as well update and migrate akkoma if you're still running that?
|
|
|
|
```sh
|
|
sudo -Hu akkoma MIX_ENV=prod mix deps.get
|
|
sudo -Hu akkoma MIX_ENV=prod mix ecto.migrate
|
|
start akkoma
|
|
``` |