Postgresql 如何在Linux中实现与Mac OS相同的Postgres排序行为?

Postgresql 如何在Linux中实现与Mac OS相同的Postgres排序行为?,postgresql,postgresql-9.2,Postgresql,Postgresql 9.2,在Mac OS(开发)与Linux(生产服务器)之间切换时,Postgres的排序规则会发生变化,因为Postgres中的排序规则取决于底层操作系统配置 如何在Linux中实现与在Mac OS中相同的Postgres排序行为 我正在运行Postgres 9.2,您可以控制创建数据库时使用的排序规则 PostgreSQL将使用底层操作系统排序例程,因此,如果操作系统不提供完全相同的区域设置,或者它们的实现不同,则无法始终获得精确匹配。添加对进行内部操作系统独立排序的支持一直是人们的愿望,但这是一项

在Mac OS(开发)与Linux(生产服务器)之间切换时,Postgres的排序规则会发生变化,因为Postgres中的排序规则取决于底层操作系统配置

如何在Linux中实现与在Mac OS中相同的Postgres排序行为


我正在运行Postgres 9.2,您可以控制创建数据库时使用的排序规则


PostgreSQL将使用底层操作系统排序例程,因此,如果操作系统不提供完全相同的区域设置,或者它们的实现不同,则无法始终获得精确匹配。添加对进行内部操作系统独立排序的支持一直是人们的愿望,但这是一项巨大的工作,目前还没有人迫切希望这样做。

OS X上的区域设置已经足够破碎,而Linux(glibc)上的区域设置还不够破碎,因此您将很难成功地解决这一问题。唯一的方法是使用最低公分母,即C语言环境。但是,如果您开发的应用程序实际上依赖于有用的自然语言排序行为,则需要在生产中使用的相同平台上进行。我建议在您的OS X机器上设置一个运行Linux的虚拟机。

OS X的区域设置怪癖是我希望有一天能够处理一些可怕的大事情的原因之一。Postgres没有抽象出所有特定于平台的行为,这是我一个人的错误还是一个巨大的错误?