A) Първо създайте резервно копие на всички бази данни за това (Можете да продължите от Б, ако не се нуждаете от резервно копие)
- Влезте като потребител на postgres
sudo su postgres
- Създайте резервен .sql файл за всички данни, които имате във всички бази данни
pg_dumpall > backup.sql
B) Надстройте до PostgreSQL12
- актуализирайте пакетите и инсталирайте postgres 12
sudo apt-get update
sudo apt-get install postgresql-12 postgresql-server-dev-12
- Спрете услугата postgresql
sudo systemctl stop postgresql.service
- мигрирайте данните
/usr/lib/postgresql/12/bin/pg_upgrade \
--old-datadir=/var/lib/postgresql/10/main \
--new-datadir=/var/lib/postgresql/12/main \
--old-bindir=/usr/lib/postgresql/10/bin \
--new-bindir=/usr/lib/postgresql/12/bin \
--old-options '-c config_file=/etc/postgresql/10/main/postgresql.conf' \
--new-options '-c config_file=/etc/postgresql/12/main/postgresql.conf'
- Превключете към обикновен потребител
exit
- Разменете портовете на старата и новата версия на postgres.
sudo vim /etc/postgresql/12/main/postgresql.conf
#change port to 5432
sudo vim /etc/postgresql/10/main/postgresql.conf
#change port to 5433
- Стартирайте услугата postgresql
sudo systemctl start postgresql.service
- Влезте като потребител на postgres
sudo su postgres
- Проверете новата си версия на postgres
psql -c "SELECT version();"
- Изпълнете генерирания нов клъстерен скрипт
./analyze_new_cluster.sh
- Върнете се като нормален потребител (по подразбиране) и почистете бъркотията в старата версия
sudo apt-get remove postgresql-10 postgresql-server-dev-10
#uninstalls postgres packages
sudo rm -rf /etc/postgresql/10/
#removes the old postgresql directory
sudo su postgres
#login as postgres user
./delete_old_cluster.sh
#delete the old cluster data
- Поздравления! Вашата postgresql версия вече е надстроена. Ако всичко работи добре в B, не е нужно да прилагаме архивирането, тъй като вече сме мигрирали данните от по-старата версия към по-новата версия, архивирането е само в случай, че нещо се обърка.
ЗАБЕЛЕЖКА: Променете postgresql.conf и pg_hba.conf според вашите изисквания
PS :Чувствайте се свободни да коментирате вашите проблеми, предложения или всякакви други модификации, които искате да предложите