﻿# Установить локаль ru\_RU.UTF-8 для PosgreSQL

> [HTML Version](install-local-ru_ru_utf-8.html)

Использование национальной локали **ru\_RU.UTF-8** повышает производительность PostgreSQL при работе с русскоязычными данными:

- улучшается работа механизмов сортировки и индексирования данных; 

- ускоряется выполнение поисковых и текстовых операций. 

Установка локали состоит из четырёх этапов:

1. [Проверить доступные локали](#check-locales).

2. [Остановить работу приложения ELMA365](#stop-all-elma365-services).

3. [Создать базу данных с локалью ru\_RU.UTF-8](#create-database-with-locale-ru_ru.utf-8).

4. [Возобновить работу приложения ELMA365](#start-all-elma365-services).

## Шаг 1. Проверить доступные локали

1. Проверьте наличие локали **ru\_RU.UTF-8** в системе. Для этого выполните команду:

````
locale -a | grep ru\_RU

````
Если локаль доступна, отобразится её название.

2. Если локаль отсутствует:

1. Установите её, выполнив команду:

````
sudo locale-gen ru\_RU.UTF-8  
sudo update-locale

2. ````
Перезагрузите сервис PostgreSQL для применения изменений:

````
sudo systemctl restart postgresql 

3. ````
Проверьте наличие локали **ru-RU** в PostgreSQL, выполнив команду:

````
sudo -u postgres psql -c "SELECT \* FROM pg\_collation WHERE collname LIKE 'ru%';"

## ````
Шаг 2. Остановить работу приложения ELMA365

Остановите все сервисы приложения ELMA365 и дождитесь их завершения. Для этого используйте команду:

````
kubectl scale deploy --replicas=0 --all \[-n <elma365-namespace>\]

## ````
Шаг 3. Создать базу данных с локалью ru\_RU.UTF-8

1. Поскольку изменить локаль в существующей базе данных нельзя, создайте новую с нужными параметрами. Для этого выполните команду:

````
sudo -u postgres psql -c "CREATE DATABASE elma365\_new WITH OWNER = elma365  
LOCALE\_PROVIDER = icu ICU\_LOCALE = 'ru-RU' ENCODING = 'UTF8' LC\_COLLATE =   
'ru\_RU.UTF-8' LC\_CTYPE = 'ru\_RU.UTF-8' TEMPLATE = template0;"  
sudo -u postgres psql -d elma365\_new -c "CREATE EXTENSION \\"uuid-ossp\\"; CREATE  
EXTENSION pg\_trgm;"

2. ````
Создайте резервную копию существующей базы данных, использовав команду:

````
sudo -u postgres pg\_dump elma365 > elma365-dump.sql

3. ````
Перенесите данные из резервной копии в новую базу данных с локалью **ru\_RU.UTF-8**:

````
sudo -u postgres psql elma365\_new < elma365-dump.sql

начало внимание

````
Перед выполнением следующего действия убедитесь, что все данные перенесены.

````
конец внимание

4. ````
Удалите старую базу данных и переименуйте новую:

````
sudo -u postgres psql -c "DROP DATABASE elma365;"  
sudo -u postgres psql -c "ALTER DATABASE elma365\_new RENAME TO elma365;"

## ````
Шаг 4. Возобновить работу приложения ELMA365

Запустите все сервисы приложения ELMA365, используя команду:

````
kubectl scale deploy --replicas=1 --all \[-n <elma365-namespace>\]
````