我最近将我的postgres从9.5更新到9.6.2(安装了home-brew,虽然旧的二进制文件是直接从postgresql下载的),我遇到了一个奇怪的问题。我一直关注this guide,一切都很顺利。我不得不修改一些命令,因为我的编码信息很奇怪,但一切正常(下面列出了修改过的命令。)
String indices must be integers, not str: TypeError
Traceback (most recent call last):
File "/var/task/lambda_function.py", line 22, in lambda_handler
print "Looking at volume %s" % volume['VolumeId']
TypeError: string indices must be integers, not str
注意:在开始此过程之前,我将旧数据集群移至posgres96。
然而,没有任何数据转移过来。我运行initdb --local=C /usr/local/var/postgres -E utf8 --lc-ctype=en_US.UTF-8
pg_upgrade -d /usr/local/var/postgres96 -D /usr/local/var/postgres -b /Users/MyUser/Downloads/pgsql/bin/ -B /usr/local/Cellar/postgresql/9.6.2/bin/
,我的所有数据仍然在postgres96中,但没有一个转移到新群集。
du -sh /usr/local/var/*/
我重新运行了所有内容,并在4.0K /usr/local/var/db/
80K /usr/local/var/homebrew/
48K /usr/local/var/log/
141M /usr/local/var/postgres/
386M /usr/local/var/postgres96/
0B /usr/local/var/run/
的输出中注意到有一个奇怪的异常现象。
pg_upgrade
似乎数据库模式从未被丢弃过?无论如何,我的所有数据都被困在postgres96中,我无法理解。任何帮助或见解将不胜感激。
编辑:我最后只是重新安装了一个较旧的postgres并将我的数据转储到新服务器(工作正常)。我仍然有兴趣知道为什么pg_upgrade不起作用。