小编Abd*_*ull的帖子

使用与源数据库相同的语言环境设置还原 PostgreSQL 数据库

我在Ubuntu 14.04 LTS生产机器上有一个 PostreSQL 9.x 数据库。我的开发机器是基于Windows 7的,提供 PostreSQL 9.y。

我想在我的开发机器上恢复 Ubuntu PostreSQL 数据库。

我注意到 Ubuntu 数据库使用以下语言环境设置:

  • 字符集编码=UTF8
  • 整理顺序,字符串排序顺序=en_US.UTF-8
  • 字符类型,字符分类=en_US.UTF-8

当我在没有指定语言环境的情况下在 Windows 机器上恢复数据库时,它将被设置为

  • 字符集编码=UTF8
  • 整理顺序,字符串排序顺序=German_Germany.1252
  • 字符类型,字符分类=German_Germany.1252

我的计划是让我的开发机器上的数据库尽可能类似于我的 Ubuntu 机器上的数据库。所以我的想法是首先在我的 Windows 机器上创建一个具有生产匹配语言环境的数据库,然后将我的 Ubuntu 数据库prod-db.backup备份文件恢复到该创建的数据库中:

createdb --host=localhost --username=postgres --encoding=Unicode --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8 --owner=prod prod-db
pg_restore --host=localhost --username=postgres --format=custom prod-db.backup --dbname=prod-db
Run Code Online (Sandbox Code Playgroud)

这个想法不起作用,因为createdb在 Windows 上会抱怨错误无效的语言环境名称 en_US.UTF-8

我去了一个狩猎找到Windows区域名称相匹配的Ubuntu的语言环境名称,其中包括使用的解决方案template0中模板的数据库,不同的区域设置标识符,如实验en_US.UTF-8 …

postgresql pg-restore

7
推荐指数
1
解决办法
8979
查看次数

标签 统计

pg-restore ×1

postgresql ×1