我想在PostgreSQL和rails应用程序中使用icu排序规则。我在database.yml中指定了icu排序规则,如下所示:
adapter: postgresql
ctype: ja-x-icu
collation: ja-x-icu
但我得到了以下错误:
Caused by:
PG::WrongObjectType: ERROR: invalid locale name: "ja-x-icu"
我发现了一些问题,说我们不能在“创建数据库”中使用ICU排序规则。
Get und-x-icu as collation and character type in Postgres 10 and win server 2008
现在的情况是否仍然是这个问题呢?
如果是这样,我如何创建数据库与icu排序?
提前谢谢你。(我使用的是Rails7和Postgres 11,但如果需要的话,我可以升级到更高的版本。)
1条答案
按热度按时间5uzkadbs1#
只有PostgreSQL v15或更高版本才支持此功能。
如果您使用的是v15或更高版本,我猜您的错误在于您只是使用了
你得换个方式:
使用
--locale
作为C库语言环境。即使使用ICU排序规则(--icu-locale=ja-x-icu --locale-provider=icu
),也必须指定C库语言环境。