База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибку PostgreSQL invalid value for parameter «lc_messages»? › Ответ в теме: Как исправить ошибку PostgreSQL invalid value for parameter «lc_messages»?
Ошибка PostgreSQL:
|
1 2 |
ERROR: invalid value for parameter "lc_messages": "en_US.UTF-8" STATEMENT: SET lc_messages to 'en_US.UTF-8'; |
означает, что в вашей системе отсутствует локаль en_US.UTF-8, или она не поддерживается сервером PostgreSQL.
Что делать:
1. Проверьте, какие локали установлены в ОС (Linux):
|
1 |
locale -a |
Если en_US.UTF-8 нет в списке, значит локаль не установлена.
2. Установите локаль en_US.UTF-8 в системе.
Для Debian/Ubuntu:
|
1 2 |
sudo locale-gen en_US.UTF-8 sudo dpkg-reconfigure locales |
Для CentOS/RHEL:
|
1 |
localedef -i en_US -f UTF-8 en_US.UTF-8 |
3. Перезапустите PostgreSQL после установки локали:
|
1 |
sudo systemctl restart postgresql |
4. Проверьте, что локаль появилась:
|
1 |
locale -a | grep en_US.UTF-8 |
5. Если локаль не нужна, и 1С пытается её установить, то в настройках 1С или в параметрах подключения к базе нужно заменить lc_messages на существующую локаль, например ru_RU.UTF-8.
6. Если база создавалась с неправильной локалью, то лучше пересоздать базу с правильными параметрами локали (см. ниже).
—
Если проблема связана с созданием базы 1С в PostgreSQL, и локаль не совпадает с локалью кластера, то:
— Инициализируйте кластер PostgreSQL с нужной локалью:
|
1 |
initdb --locale=ru_RU.UTF-8 --encoding=UTF8 -D /путь/к/кластеру |
— Или замените шаблон базы template1 на базу с нужной локалью:
|
1 2 3 4 |
UPDATE pg_database SET datistemplate = false WHERE datname = 'template1'; DROP DATABASE template1; CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UTF8' LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8'; UPDATE pg_database SET datistemplate = true WHERE datname = 'template1'; |
— После этого создавайте базы 1С через панель администрирования, чтобы они наследовали правильные локали.
—
Рекомендую посмотреть здесь, там подробно про локали и ошибки PostgreSQL с 1С:
Ошибка type mvarchar does not exist при создании базы 1С в PostgreSQL