#88. Как обновить postgresql
Да, здесь надо прямо-таки обновлять. Нельзя просто взять и сказать update — тебя не поймут. У postgres’а целое приложение консольное есть, чтобы правильно обновиться.
Итак:
- Стопорим postgres. У всех по-разному, например service postgres stop;
- Выполняем команду:
postgres_version меняем на что-то более вменяемое, типа postgres9.6.1. C параметром -E всё понятно – кодировка темплейта (кто знает, что такое темплейт, – добро пожаловать в комментарии). Все базы будут иметь эту кодировку по умолчанию при создании;initdb /usr/local/var/postgres_version -E utf8
- Дальше запускаем следующую красоту:
Здесь -d — старая директория данных, -D – новая директория, которую мы указали в шаге 2, -b — старая директория, где стоит postgres, -B — директория новой версии postgres;pg_upgrade -v \ -d /usr/local/var/postgres \ -D /usr/local/var/postgres_version \ -b /usr/local/Cellar/postgresql/9.5.4/bin/ \ -B /usr/local/Cellar/postgresql/9.6.1/bin/
- Меняем местами старую и новую базы:
Если при установке вы решили блеснуть мастерством и поменяли пути, то тут надо подставлять ваши директории;cd /usr/local/var mv postgres postgres9.5.4 mv postgres9.6.1 postgres
- Рестартуем postgres и получаем удовольствие. Но если не повезло, то идём читать логи, stackoverflow и хабр.
Немного линков: initdb, pg_upgrade.