这不是我的第一次升级。在过去,我从9级升级到10级,10级升级到11级,我以为上次我把所有的东西都写下来了,但显然没有。在verion 11中,我的数据库是nl_BE.utf-8
的:
List of databases
Name | Owner | Encoding | Collate | Ctype |
-----------+----------+----------+-------------+-------------+
glewlwyd | glewlwyd | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
postgres | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
prda | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
template0 | postgres | UTF8 | nl_BE.UTF-8 | nl_BE.UTF-8 |
template1 | postgres | UTF8 | nl_BE.utf-8 | nl_BE.utf-8 |
(5 rows)
安装(apt-get install postgresql-12
)之后,我修改/etc/postgresql/12/main/postgresql.conf
并将en_US.UTF-8
更改为nl_BE.UTF-8
。在以前的升级中,我将这个文件复制到我的数据目录中,但是12似乎不喜欢这个文件。11和12版本的端口号不同。
当我使用/usr/lib/postgresql/12/bin/initdb --locale=nl_BE.UTF-8 --pgdata=/srv/postgres/data/12
创建数据库时,将创建新实例,但数据库位于en_US.UTF-8
中。/usr/lib/postgresql/12/bin/pg_upgrade -b /usr/lib/postgresql/11/bin -B /usr/lib/postgresql/12/bin -d /srv/postgres/data/11 -D /srv/postgres/data/12
结束时没有出现错误。
当我连接到实例时,我自己的数据库就不存在了。必须是因为区域设置不正确。我还更改了shell的区域设置(export LANG=nl_BE.UTF-8
),但这没有帮助。我能做错什么呢?
发布于 2020-07-10 14:47:42
我跟随@Colin的评论,解决了问题。用pg_upgradecluster -v 12 11 main /srv/postgres/data/12
进行了升级。我将端口更改为5432
并重新启动它。现在我的应用程序正在使用版本12的数据库。
https://dba.stackexchange.com/questions/270732
复制相似问题