Смена локалей для postgresql
Contents
Смена локалей для postgresql#
Руководство, как сменить локаль БД Postgresql
Как проверить какая локализация в данный момент#
Выполнить sql-запрос
SELECT name, setting FROM pg_settings WHERE name LIKE 'lc_%';
Пример английской локализации
Пример русской локализации
Через psql
psql \l
Английская локализация
Русская локализация
Добавление локализации#
Отредактируйте файл /etc/locale.gen, найдите и раскомментируйте строку ru_RU.UTF-8
Выполните команду:
sudo locale-gen
Смена локализации в конфиге postgresql#
Отредактируйте файл /etc/postgresql/<version_number>/main/postgresql.conf
sudo nano /etc/postgresql/<version_number>/main/postgresql.conf
Найдите указанные строки, они должны быть с такими значениями:
lc_messages = „ru_RU.UTF-8“
lc_monetary = „ru_RU.UTF-8“
lc_numeric = „ru_RU.UTF-8“
lc_time = „ru_RU.UTF-8“
Пересоздание кластера базы данных#
Примечание
Если вам нужно сохранить ваши данные, то перед выполнением, снимите дамп с вашей БД
Для смены локализации требуется пересоздать кластер базы данных с нужной локалью.
Остановите PostgreSQL
sudo systemctl stop postgresql
Переинициализируйте кластер
sudo pg_dropcluster <версия> main --stop sudo pg_createcluster <версия> main --locale=ru_RU.UTF-8 --start
Запустите postgresql
sudo systemctl start postgresql
Если вам нужно изменить локализацию без пересоздания кластера (например, для одной базы данных), можно создать новую базу с заданной локалью:#
CREATE DATABASE mydb WITH TEMPLATE = template0 LC_COLLATE = 'ru_RU.UTF-8' LC_CTYPE = 'ru_RU.UTF-8' ENCODING = 'UTF8';