跨平台排序规则和ctype

时间:2018-09-10 11:15:11

标签: postgresql

我在Windows计算机上编码,但在生产环境中使用Linux计算机。

PostgreSQL lc_collatelc_ctype依赖于操作系统,这会带来一些问题。

创建数据库(例如create database db with encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8')时,我必须检测操作系统并指定适当的值,这很麻烦。

最大的问题是使用pg_dumppg_restore将生产数据库复制到开发计算机时。在转储/还原时,没有简单的方法可以替换这些值。

解决这些问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

是的,这很烦人。

PostgreSQL已经认识到使用OS归类也许不是最好的主意,因此他们最近引入了ICU归类,它们与操作系统无关。

很遗憾,这些功能尚不能与CREATE DATABASE一起使用。

使用pg_dump / pg_restore时,归类不会带来什么麻烦。
您要做的就是使用现有的排序规则在目标系统上创建数据库,然后将转储导入该数据库。