Lendwye
@Lendwye

Как решить проблему collation "en_US" for encoding "UTF8" does not exist?

Добрый день!
Реализую проект на laravel, при запросе
select * from "products" where (LOWER(title COLLATE "en_US") LIKE %1%  or LOWER(description COLLATE "en_US") LIKE %1% ) and "products"."deleted_at" is null and "item_type" = 0

Выдаёт ошибку
SQLSTATE[42704]: Undefined object: 7 ERROR: collation "en_US" for encoding "UTF8" does not exist LINE 1: select * from "products" where (LOWER(title COLLATE "en_US")

Впервые с такой проблемой сталкиваюсь, поэтому даже не знаю как подступиться.
  • Вопрос задан
  • 621 просмотр
Решения вопроса 1
Melkij
@Melkij
PostgreSQL DBA
Такой текст ошибки используется только в одном месте и суть его заключается в том, что в pg_collation нет такой строки.
Что через https://www.postgresql.org/docs/current/collation.html приводит к вопросу: существует ли локаль en_US.utf8 у вас в системе, чтобы её использовать?

Если нет - создайте локаль. Затем select pg_import_system_collations('public'); должно быть достаточно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Lendwye
@Lendwye Автор вопроса
Нужной кодировки у меня и правда нет, увидеть это помогла комманда
select collname from pg_collation where collname like '%utf%';

Спасибо всем, кто писал советы!
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы