Недопустимый многобайтовый символ для локали при попытке создать индекс Trigrams - PullRequest
1 голос
/ 12 марта 2019

Я использую базу данных musicbrainz через PostgresSQL в Windows 10. Я использовал эти сценарии, чтобы импортировать ее на свой компьютер (это может быть неуместно). Кодировка данных UTF-8.

Сегодня я попытался создать некоторые индексы с использованием триграмм, чтобы повысить скорость поиска по строкам, и эта ошибка появилась при создании первого:

CREATE INDEX trgm_idx_release_group_name ON release_group USING gin (name gin_trgm_ops);

ERROR:  invalid multibyte character for locale
HINT:  The server's LC_CTYPE locale is probably incompatible with the
database encoding.
SQL state: 22021

LC_CTYPE - Spanish_Spain.1252, что, похоже, является проблемой, поскольку это не UTF-8.

Тогда решение состоит в том, чтобы создать мою БД с локалью, совместимой с UTF-8, но я не могу найти эту локаль, поскольку имена отличаются от локалей Linux. Я попытался создать базу данных из pgAdmin, но в списке локалей я нахожу только C, POSIX и Spanish_Spain.1252. Я попытался создать его с помощью createdb, например:

createdb -U palp example-db -l=Spanish_Spain

но получил тот же языковой стандарт, что и раньше, с аргументом -l в качестве комментария. (Я пробовал команду с разными значениями локали и разными кавычками, но получил тот же результат).

Я делаю это неправильно? Неправильно ли указано название локали, и в этом проблема?

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...