我尝试从9.2升级到9.3,pg_upgrade失败,因为9.2 postgres(admin)db是SQL_ASCII而新的9.3 postgres(admin)实例是UTF-8。
我不能放弃' postgres' db因为它是管理实例,所以我无法使用UTF-8重新创建。
我是否正确地解决了这个问题?
非常感谢您的建议。
感谢。
答案 0 :(得分:1)
您仍然可以删除数据库。在Linux下,以下shell命令应该可以解决问题(问题为postgres
用户,在root shell中使用su - postgres
):
postgres$ pg_dump postgres > pg.sql
postgres$ dropdb postgres
postgres$ createdb -O postgres -E UTF8 postgres
postgres$ psql < pg.sql
或者,您可以欺骗目录以认为数据库是UTF8。这适用于空的postgres
数据库(默认情况下为空)
postgres$ psql
postgres=# UPDATE pg_database SET encoding = pg_char_to_encoding('UTF8') WHERE datname = 'postgres';