Update PostgreSQL 9.1 to 9.3 (Ubuntu)

Как то решил я обновить на Ubuntu сервер БД Postgres с версии 9.1 до версии 9.3, минут 5 думал, а стоит ли это того... В иторе решился, и как оказалось зря... В общем, сразу пакет postgresql-9.3 у меня не поставился, вылезла ошибка, что то вроде:

update-alternatives: error: alternative pg_basebackup.1.gz can't be slave of psql.1.gz: it is a slave of postmaster.1.gz

Но сайтец при этом работал. Начал гуглить и потратив немного времени решение нашлось, выполняем команды от суперпользователя:

$ update-alternatives --remove postmaster.1.gz /usr/share/postgresql/9.1/man/man1/postmaster.1.gz
$ apt-get install -f
$ apt-get install --reinstall postgresql-9.1

Вроде пронесло, но сайт работал еще на старой версии. Залезаем в конфиг /etc/postgresql/9.3/main/postgresql.conf и смотрим, что все настройки стали дефолтными, перекидываем измененные данные из предыдущего конфига, у меня это были параметры listen_addresses, port. Так же скопировал файлик pg_hba.conf. Останавливаю старый сервер и запускаю новый:

$ service postgresql stop 9.1
$ service postgresql start 9.3

Сайт соответственно лежит... Пытаюсь подключиться к БД, не выходит, пользователя такого нет... Ок, postgres... смотрю, а база вообще пустая, нужно как то мигрировать... Запустил на время старый сервер и пошел опять гуглить. После недолгих поисков находиться утилита pg_upgrade, но особо описания по ней нет, да и на русском тем более. Опытным путем все-таки находится та команда, которой можно и провести миграцию:

$ cd /tmp
$ service postgres stop
$ sudo -u postgres /usr/lib/postgresql/9.3/bin/pg_upgrade -d /var/lib/postgresql/9.1/main -D /var/lib/postgresql/9.3/main -b /usr/lib/postgresql/9.1/bin -B /usr/lib/postgresql/9.3/bin -o " -c config_file=/etc/postgresql/9.1/main/postgresql.conf " -O " -c config_file=/etc/postgresql/9.3/main/postgresql.conf "
$ service postgres start 9.3

Вуаля, сайт поднялся. Теперь можно и удалить старую версию Postgres.

$ apt-get remove postgresql-9.1

Всем удачи в обновлениях!

P.Nixx, 03.02.2015, 15:16