PostgreSQL 10 => 11.1 по вопросам обновления Brew
Попытка найти маршрут миграции из PostgreSQL 10.6
в postgreSQL 11.1
,
С помощью pg_upgrade
, из обеих версий, дай мне ошибки. От 11.1
который я думал будет использоваться для перевода устаревших таблиц в валюту:
$ /usr/local/Cellar/postgresql/11.1/bin/pg_upgrade -v \
> -b /usr/local/Cellar/postgresql@10/10.6/bin \
> -B /usr/local/Cellar/postgresql/11.1/bin \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres
Running in verbose mode
Performing Consistency Checks
-----------------------------
Checking cluster versions
This utility can only upgrade to PostgreSQL version 11.
Failure, exiting
От 10.6
, ожидаемый результат, так как он не может видеть форвардную структуру:
/usr/local/Cellar/postgresql@10/10.6/bin/pg_upgrade -v \
> -b /usr/local/Cellar/postgresql@10/10.6/bin \
> -B /usr/local/Cellar/postgresql/11.1/bin \
> -d /usr/local/var/postgres \
> -D /usr/local/var/postgres
Running in verbose mode
Performing Consistency Checks
-----------------------------
Checking cluster versions
New cluster data and binary directories are from different major versions.
Failure, exiting
Как я могу перенести таблицы для работы с версией 11.1
должным образом? Я предполагаю, что используется последняя версия, и мои каталоги действительны.
1 ответ
Да, вам нужно использовать pg_upgrade версии, которую вы обновляете до (11.1).
Ваши параметры -b и -B выглядят нормально. Однако ваши -d и -D не могут быть одинаковыми! Расположение конфигурации также определяет местоположения данных, и они не могут быть одинаковыми. Вам необходимо указать расположение конфигурации вашего инициализированного кластера 11.1 с помощью -D.
Если вы не хотите, чтобы pg_upgrade копировал все данные, используйте опцию --link, чтобы использовать жесткие ссылки вместо копирования. После обновления вы можете удалить старые данные dir.