我在Windows计算机上编码,但在生产环境中使用Linux计算机。
PostgreSQL lc_collate
和lc_ctype
依赖于操作系统,这会带来一些问题。
创建数据库(例如create database db with encoding 'UTF8' lc_collate 'en_US.UTF-8' lc_ctype 'en_US.UTF-8'
)时,我必须检测操作系统并指定适当的值,这很麻烦。
最大的问题是使用pg_dump
和pg_restore
将生产数据库复制到开发计算机时。在转储/还原时,没有简单的方法可以替换这些值。
解决这些问题的最佳方法是什么?
答案 0 :(得分:3)
是的,这很烦人。
PostgreSQL已经认识到使用OS归类也许不是最好的主意,因此他们最近引入了ICU归类,它们与操作系统无关。
很遗憾,这些功能尚不能与CREATE DATABASE
一起使用。
使用pg_dump
/ pg_restore
时,归类不会带来什么麻烦。
您要做的就是使用现有的排序规则在目标系统上创建数据库,然后将转储导入该数据库。