Postgresql
Postgres 從 11 升級到 12 後數據庫失去
這不是我的第一次升級。過去我從 9 升級到 10,從 10 升級到 11。我以為我上次把所有東西都寫下來了,但顯然沒有。在版本 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
沒有錯誤的結束。當我連接到實例時,我自己的數據庫不存在。一定是因為語言環境不正確。我還更改了
export LANG=nl_BE.UTF-8
shell 的語言環境 ( ),但這並沒有幫助。我做錯了什麼?
我關注了@Colin ’t Hart 的評論,這解決了問題。隨著
pg_upgradecluster -v 12 11 main /srv/postgres/data/12
升級完成。我將埠更改為5432
並重新啟動它。現在我的應用程序正在使用版本 12 數據庫。