Я использую базу данных 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 в качестве комментария. (Я пробовал команду с разными значениями локали и разными кавычками, но получил тот же результат).
Я делаю это неправильно? Неправильно ли указано название локали, и в этом проблема?
Спасибо.