加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

postgresql – 在Heroku postgres上设置语言环境

发布时间:2020-12-13 16:14:16 所属栏目:百科 来源:网络整理
导读:我在Heroku使用Basic数据库计划.这在Postgres 9.1上运行,它支持语言环境.我在我的应用程序中排序存在问题,因为角色???没有得到妥善处理(正如他们应该在瑞典). 要设置的设置是LC_COLLATE,它处理字符串排序.问题是我找不到任何方法在Heroku上设置它.创建的数据
我在Heroku使用Basic数据库计划.这在Postgres 9.1上运行,它支持语言环境.我在我的应用程序中排序存在问题,因为角色???没有得到妥善处理(正如他们应该在瑞典).

要设置的设置是LC_COLLATE,它处理字符串排序.问题是我找不到任何方法在Heroku上设置它.创建的数据库获取lc_collat??e = en_US.UTF-8,但我需要将其设置为sv_SE.UTF-8.

创建数据库时无法更改此LC_COLLATE设置,因此无法通过psql控制台更改它.

那么,我该怎么设置呢?

你是正确的,无法改变数据库的默认排序规则; LC_COLLATE是在Heroku数据库服务器上设置的环境变量,它在您的控件之外并且在创建数据库之前已经设置.但是,您可以为各列设置默认排序规则:
CREATE TABLE new_table (
    foo varchar COLLATE "sv_SE.UTF-8",bar varchar COLLATE "sv_SE.UTF-8"
);

ALTER TABLE existing_table ALTER COLUMN baz TYPE varchar COLLATE "sv_SE.UTF-8";

有关更多信息,请参阅PostgreSQL手册中的22.2. Collation Support.

您可能需要也可能不需要先创建COLLATION.此外,所有这些都取决于安装了正确的语言环境数据的Heroku数据库服务器 – 尽管如果没有,您可能会很好地要求部署,因为它不会伤害任何人.

如果做不到这一点,您当然可以在EC2中运行自己的PostgreSQL实例,无论您想要什么样的自定义设置.这需要投入管理时间,但诚实地运行9.1非常简单,甚至包括流复制.甚至可能更便宜.缺点是保持数据库运行成为你的问题而不是Heroku ops团队的问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读