3

Имея мигрировать PostGreSQL кластера в рамках доморощенного рамки (следуя инструкции здесь), https://gist.github.com/cjolly/2870054 миграция не может по командемигрирующие значения кластера PostgreSQL LC_CTYPE не совпадают

pg_upgrade -d/USR/местные/вар /postgres-9.0.4/ -D /usr/local/var/postgres -b /usr/local/Cellar/postgresql/9.0.4/bin -B /usr/local/Cellar/postgresql/9.2.4/ bin

с погрешностью

Значения кластера

LC_CTYPE не совпадают: старые "UTF-8", новый "C"

идеи, как преодолеть это?

В качестве альтернативы, я готов остаться с версией 9.0.4, так как это было, за исключением того, что я глупо удалил исходный каталог подвалов, если доморощенный очистил (я могу подтвердить, что он эффективен и опасен) и остался без каких-либо рецепт для этой версии. У меня был тарбол, который лежал вокруг, и ему удалось установить его, но это не под доморощенным, и страх больше потягивает волосы позже.

Я переместил/USR/местные/PgSQL/полученные от тарболе в/USR/местные/Подвал/PostGreSQL/

любой неверный шаг здесь?

ответ

0

Работает с LC_CTYPE = C, как правило, очень плохая идея. Вдруг так, если вы используете псевдокодирование SQL_ASCII.

Если в новом источнике данных нет данных, я бы рекомендовал удалить его и восстановить initdb 'ing с разумными языками и настройками символов.

+0

AFAIK, что LC-CTYPE получил генерироваться в автоматизированной (или бессознательного) образом. Я предполагаю, что это было получено из команды «brew upgrade postgresql». Изучая исходные базы данных, все они созданы LC_CTYPE = 'UTF-8' (как свидетельствует сообщение об ошибке). Любая идея, как новый datadir будет настроен как «C»? или еще лучше, как настроить его на utf8, заданный доморощенным (согласно ссылке выше)? – Jerome

2

решаемые этот вопрос, указав --lc-CType непосредственно при инициализации новой БД:

initdb /usr/local/var/postgres9.4 -E utf8 --lc-ctype=UTF-8