Как обновить PostgreSQL с 14 до 15

Выпущена новая версия PostgreSQL 15 . Есть несколько способов обновить старую версию 14, и самый простой из них — использовать инструмент pg_upgrade . Вот краткое руководство для систем Ubuntu (или Debian). И, пожалуйста, не забудьте сделать резервную копию ваших данных!

Обновите пакеты и установите новый PostgreSQL 15.

sudo apt-get update
sudo apt-get install postgresql-15 postgresql-server-dev-15

Проверьте, нет ли различий в файлах конфигурации.

diff /etc/postgresql/14/main/postgresql.conf /etc/postgresql/15/main/postgresql.conf
diff /etc/postgresql/14/main/pg_hba.conf /etc/postgresql/15/main/pg_hba.conf

Остановите службу PostgreSQL.

sudo systemctl stop postgresql.service

Войдите как postgres-пользователь.

sudo su - postgres

Проверьте кластеры (обратите внимание на --check аргумент, это не изменит никаких данных).

/usr/lib/postgresql/15/bin/pg_upgrade \
  --old-datadir=/var/lib/postgresql/14/main \
  --new-datadir=/var/lib/postgresql/15/main \
  --old-bindir=/usr/lib/postgresql/14/bin \
  --new-bindir=/usr/lib/postgresql/15/bin \
  --old-options '-c config_file=/etc/postgresql/14/main/postgresql.conf' \
  --new-options '-c config_file=/etc/postgresql/15/main/postgresql.conf' \
  --check

Перенесите данные (без --check аргумента).

/usr/lib/postgresql/15/bin/pg_upgrade \
  --old-datadir=/var/lib/postgresql/14/main \
  --new-datadir=/var/lib/postgresql/15/main \
  --old-bindir=/usr/lib/postgresql/14/bin \
  --new-bindir=/usr/lib/postgresql/15/bin \
  --old-options '-c config_file=/etc/postgresql/14/main/postgresql.conf' \
  --new-options '-c config_file=/etc/postgresql/15/main/postgresql.conf'

Вернитесь к обычному пользователю.

exit

Поменяйте местами порты для старой и новой версий PostgreSQL.

sudo vim /etc/postgresql/15/main/postgresql.conf
# ...and change "port = 5433" to "port = 5432"

sudo vim /etc/postgresql/14/main/postgresql.conf
# ...and change "port = 5432" to "port = 5433"

Запустите службу PostgreSQL.

sudo systemctl start postgresql.service

Войдите снова как пользователь postgres.

sudo su - postgres

Проверьте новую версию PostgreSQL.

psql -c "SELECT version();"

Запустите рекомендуемую vacuumdb команду:

/usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages

Вернуться к обычному пользователю.

exit

Проверьте, какие старые пакеты PostgreSQL установлены.

apt list --installed | grep postgresql

Удалите старые пакеты PostgreSQL (из списка выше).

sudo apt-get remove postgresql-14 postgresql-server-dev-14

Удалите старую конфигурацию.

sudo rm -rf /etc/postgresql/14/

Похожие записи