手順メモ データディレクトリをバックアップする(rename + copyが良いと思う) サーバーに現行postgresとアップデート先のpostgres両方を入れる 新しいバージョンのinitdbで新しくデータディレクトリを初期化する 上記両方のpsqlサーバーが停止していることを確認する pg_upgradeコマンドで新旧データディレクトリ(D, dオプション)と新旧postgresのbinディレクトリ(B,bオプション)を指定してデータ移行 新しいpostgresのサーバーを立ち上げる 最低限はこれでできるっぽい。 その他メモ 今更だがデータベースのLocaleは結構重要なようで、新旧DBのLocaleが不一致だった場合はpg_upgradeは失敗する コンテナ上で作業する場合は、作業用コンテナをdocker runでベースのイメージから立ち上げて作業していくのが良さそう(-vでディレクトリマウントするの忘れずに) ロケール生成 rockylinuxをコンテナで動かした場合、ロケールが入ってないのでコケることが多い。そういうときは、必要なロケールデータを以下のようなコマンドでインストールする。 $ dnf install glibc-locale-source glibc-langpack-en langpacks-en # en_USを生成したい場合 それから、localedefで生成する。 $ localedef -f UTF-8 -i en_US en_US.UTF-8 これでロケールを使えるようになる。