我在Heroku中使用基础数据库计划。它运行在支持语言环境的Postgres 9.1上。我在我的应用程序中排序时遇到问题,因为ÅÄÖ字符没有得到妥善处理(就像他们在瑞典应该那样)。在Heroku上设置语言环境postgres
要设置的设置是LC_COLLATE
,它处理字符串排序。问题是我找不到在Heroku上设置它的任何方法。创建的数据库得到lc_collate=en_US.UTF-8
,但我需要将其设置为sv_SE.UTF-8
。
这个LC_COLLATE
设置在创建数据库时无法更改,因此我无法通过psql控制台更改它。
那么,我该如何设置呢?
哇,真烦。 PostgreSQL支持通过CREATE DATABASE ... LC_CTYPE'blah'LC_COLLATE'blah''设置每个数据库的排序规则;它吸引了Heroku不会向用户公开这一点。 –
谢谢,它似乎可以改变列整理。我确实需要首先创建排序规则。谢谢。 – Linus
谢谢!最后。我一直在苦苦挣扎,这太久了。 对我来说,它不适用于“sv-SE.UTF-8”,而只适用于“sv-SE”。 使用Rails,我做了一个rake任务改变与下面的代码整理: ---- 命名空间:设置做 任务:heroku_collation =>:环境做 的ActiveRecord :: Base.establish_connection 的ActiveRecord :: Base的。 connection.execute'ALTER TABLE municipalities ALTER COLUMN name TYPE varchar COLLATE“sv_SE”;'结束 结束 –