Локаль недоступна в PostgreSQL 9.6 на Jelastic 5.4 - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть процедура автоматического развертывания, основанная на сценариях bash, которая создает базу данных на узле PostgreSQL в среде Jelastic.Мой провайдер использует версию 5.4 платформы Jelastic.

Автоматическая процедура использовалась десятки раз успешно, но она отказывается запускаться сегодня.

Все мои старые среды Jelastic имеют PostgreSQL версии 9.4.x или 9.5.x.Однако новая среда, которую я только что создал, дала мне версию 9.6.x, которая, по-видимому (согласно экрану топологии среды), единственная версия PostgreSQL, доступная в ветке 9.x.

Следующий оператор больше не работает с PostgreSQL версии 9.6.x:

createdb -T template0 -E UTF8 -l es_EC.UTF-8 -U webadmin -w -e <database-name>

Конечно, <database-name> - это имя базы данных, которую я намереваюсь создать.Я получаю следующее сообщение об ошибке:

createb: сбой при создании базы данных: ОШИБКА: неверное имя локали: "es_EC.UTF-8"

Я не проверял свое приложениес PostgreSQL v10.x и не имеют возможности сделать это сейчас.Пожалуйста, дайте мне знать, что вы предлагаете мне сделать на этом этапе.

Ответы [ 2 ]

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

Локали базового образа PostgreSQL и других шаблонов были удалены заведомо, чтобы уменьшить общий размер образа докера.В то же время пользователь может установить локаль вручную с помощью SSH-доступа :

sudo localedef -v -c -i es_EC -f UTF-8 es_EC.UTF-8

Примечание: после повторное развертывание контейнера локали будут возвращены вего начальное состояние.Чтобы преодолеть это ограничение, вы можете указать предоставленную команду в команда запуска

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

База данных 9.6, вероятно, устанавливается на машине, на которой не установлена ​​эта локаль.

PostgreSQL использует локали операционной системы, поэтому вы можете запустить locale -a в оболочке, чтобы увидеть все установленные локали.

Все, что вам, вероятно, нужно сделать, - это установить желаемую локаль на машину.

...