Обновление кластера postgres с 9.2 до 9.3, когда у меня есть доступ только к старому каталогу данных
Это довольно странная ситуация, но в основном у меня есть веб-хостинг от компании, которая использует пользовательские установки postgres, чтобы вы могли управлять вещами из своего домашнего каталога, но он использует PGBIN
каталоги, которые хранятся в корневых папках, вне домашних каталогов различных пользователей.
У них также есть скрипт, который устанавливает postgres для вас, который автоматически устанавливает postgres 9.2. Я сделал это, но мне нужно иметь Postgres 9.3 из-за зависимостей расширения.
Каталог данных postgres хранится в ~/postgresql
, Различные папки, содержащие bin
папки находятся в /package/host/localhost/postgresql-X.Y.Z
, где X.Y.Z
различные номера версий. Чтобы выбрать версию, вы редактируете файл конфигурации в ~/etc
который указывает, какой использовать при запуске psql
,
Когда я изменяю файл конфигурации для использования версии 9.3, я больше не могу запустить службу базы данных, потому что она использует кластер данных, который был инициализирован в 9.2. Хорошо, я просто обновлю кластер данных с 9.2 до 9.3, используя pg_upgrade
вот так:
pg_upgrade -b /package/host/localhost/postgresql/9.2.6/bin -B /package/host/localhost.postgresql-9.3.2/bin -d ~/postgresql_92_backup/postgresql -D ~/postgresql -v
(Я сделал резервную копию каталога данных 9.2 в папку с именем ~/postgresql_92_backup
)
Теперь я получаю ошибку:
New cluster data and binary directories are from different major versions.
Конечно, это "новый" каталог данных, только мой старый, но я не могу установить postgres 9.3, потому что изменение номера версии postgres в файле конфигурации в ~/etc
даже не запустит службу, потому что кластер в первую очередь устареет. Так что у меня нет способа установить 9.3, а это значит, что я не могу получить новую папку 9.3, с помощью которой можно обновить кластер. Я чувствую, что нахожусь в ловушке 22.
Хуже всего, если база данных пуста, мне даже нет дела до сохранения исходных данных, я просто хочу начать с пустой базы данных 9.3. Есть ли способ просто перезаписать обновление каталога данных до новой версии с пустой базой данных? Потому что это сработало бы для меня. Есть ли способ просто обновить существующий каталог данных postgres до новой версии?