迁移postgresql lc_ctype群集值不匹配

时间:2013-06-08 19:37:50

标签: ruby-on-rails-3.2 homebrew postgresql-9.2 postgresql-9.0

必须在自制框架内迁移postgresql集群(按照此处的说明), https://gist.github.com/cjolly/2870054 迁移失败,命令

  

pg_upgrade -d /usr/local/var/postgres-9.0.4/ -D   / usr / local / var / postgres -b /usr/local/Cellar/postgresql/9.0.4/bin -B   /usr/local/Cellar/postgresql/9.2.4/bin

有错误

  

lc_ctype群集值不匹配:旧“UTF-8”,新“C”

任何想法如何克服这个?

或者,我愿意继续使用版本9.0.4,除非我愚蠢地删除了原来的Cellar目录,让自制软件进行清理(我可以确认它是有效且危险的)并且没有任何配方适用于该版本。我确实让tarball躺在那里并设法安装它,但是在自制程序下它不是并且害怕以后更多的毛发拉动。

我已将/ usr / local / pgsql /生成的tarball移动到/ usr / local / Cellar / postgresql /

这里有什么错误的步骤?

2 个答案:

答案 0 :(得分:3)

通过在初始化新db:

时直接指定--lc-ctype解决了这个问题
initdb /usr/local/var/postgres9.4 -E utf8 --lc-ctype=UTF-8

答案 1 :(得分:0)

使用LC_CTYPE = C运行通常是一个非常糟糕的主意。如果你使用的是SQL_ASCII伪编码,那么双重。

如果新数据库中没有数据,我建议删除它并重新initdb使用合理的语言环境和字符集选项。