Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 28, 2016 21:41:15

legi0ner
От: Чебоксары
Зарегистрирован: 2012-05-15
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Postgresql не работает icontains

Есть 2 базы postgresql

на windows кодировка utf8 сопоставление Russian_Russia.1251
на ubuntu кодировка utf8 сопоставление C
Есть код в котором фильтрую данные Test.objects.filter(name__icontains=u“наз”)

в первом случае в ответ попадают значения - Наз… и наз…

во втором случае только = наз…

Не могу понять как решить проблему. получается все из-за сопоставления

Офлайн

#2 Окт. 28, 2016 22:58:41

legi0ner
От: Чебоксары
Зарегистрирован: 2012-05-15
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Postgresql не работает icontains

Нашел ответ.

Оказалось что LC_CTYPE - Классификация символов (Что представляет собой буква? Каков её эквивалент в верхнем регистре?)
подробнее https://postgrespro.ru/docs/postgrespro/9.5/locale

У меня на ubuntu LC_CTYPE = C, нужно сделать ru_RU.utf8.

1.Необходимо проверить установленные локали, нужно чтобы у вас в списке был ru_RU.UTF-8 (если нет установить)
2. Пересоздать кластер с учётом локали (не забываем сохранить данные) (пример - https://www.sinyawskiy.ru/invalid_locale.html)
3. восстанавливаем сохраненные данные
4. profit

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version