PostgreSQL 10 => 11.1 по вопросам обновления Brew - PullRequest
0 голосов
/ 29 декабря 2018

Попытка найти маршрут миграции от 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 Ответ

0 голосов
/ 29 декабря 2018

Да, вам нужно использовать pg_upgrade версии, которую вы обновляете до (11.1).

Ваши параметры -b и -B выглядят нормально.Однако ваши -d и -D не могут быть одинаковыми!Расположение конфигурации также определяет местоположения данных, и они не могут быть одинаковыми.Вам нужно указать расположение конфигурации вашего инициализированного кластера 11.1 с помощью -D.

Если вы не хотите, чтобы pg_upgrade копировал все данные, используйте параметр --link, чтобы использовать жесткие ссылки вместо копирования.После обновления вы можете удалить старый каталог данных.

...