spo*_*ong 5 postgresql upgrade
我正在我的 Macbook Pro(我的开发机器)上升级 Postgres.app,运行时出现错误:
pg_upgrade -b /Users/foo/Library/PostgreSQL/9.1/bin/
-B /Applications/Postgres.app/Contents/MacOS/bin/
-d /Users/foo/Library/Application\ Support/Postgres/var-9.1/
-D /Users/foo/Library/Application\ Support/Postgres/var
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
lc_collate cluster values do not match: old "en_US", new "en_US.UTF-8"
Run Code Online (Sandbox Code Playgroud)
我该如何纠正?
注意:我曾经让Postgres.app运行 9.1,但我覆盖了它。我应该阅读/遵循的方向是:升级 Postgres.app。所以旧的bin不见了,但我还有数据目录。相反,我下载了 Postgres 9.1 并将其安装在其他地方,以使用 bin 目录升级并将我的数据移动到新的 Postgres。
由于我正在迁移数据并且不关心数据库中的任何新内容,因此我只是删除了其中的所有内容(当然您可以备份它以确保安全):
rm -rf ~/Library/Application\ Support/Postgres/var
Run Code Online (Sandbox Code Playgroud)
并使用语言环境 en_US 创建了一个新的,内容如下:
initdb --locale=en_US -D ~/Library/Application\ Support/Postgres/var
Run Code Online (Sandbox Code Playgroud)
然后我刚刚运行升级:
pg_upgrade -b ~/Library/PostgreSQL/9.1/bin/
-B /Applications/Postgres.app/Contents/MacOS/bin/
-d ~/Library/Application\ Support/Postgres/var-9.1/
-D ~/Library/Application\ Support/Postgres/var
Run Code Online (Sandbox Code Playgroud)
然后运行分析仪,一切都很好。
./analyze_new_cluster.sh
Run Code Online (Sandbox Code Playgroud)
我连接了 pgAdmin3,所有数据都正常。
| 归档时间: |
|
| 查看次数: |
4550 次 |
| 最近记录: |