既存のPostgreSQL 14インストールから15にデータをアップグレードする方法を知りたいです。
aptを介して自動的にPG 15をインストールすることによって得られた。
# dpkg -l | grep ii | cut -d" " -f3 | grep postgresql-1
postgresql-14
postgresql-15
しかし、データはまだすべてPG 14にあります。
2つのサービスがあります
service postgresql@14-main status
そして
service postgresql@15-main status
答え1
前の 14 クラスタでまだ実行中であることを確認し、データをバックアップそして
pg_dumpall -F t > ~/backup_postgres_all_dbs.tar
まだ空の既定のインストール済み postgreSQL 15 クラスターを停止して削除します。
pg_dropcluster 15 main --stop
14クラスタを最新バージョン(現在15)にアップグレードする
pg_upgradecluster 14 main
数時間かかることがあります。完了したら、アップグレードされたクラスタが正しく機能していることを確認してください。
service postgresql@14-main stop
service postgresql@15-main start
これで、14個のクラスタが「ダウン」状態になっているはずです。実行中であることを確認できます。
pg_lsclusters
Ver Cluster Port Status Owner Data directory Log file
14 main 5433 down postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
15 main 5432 online postgres /var/lib/postgresql/15/main /var/log/postgresql/postgresql-15-main.log
postgreSQLを使用するアプリケーションがすべて機能していることを確認します(最終的にpsql-15設定でポートを調整します)。すべてが正常な場合は、クラスタ14を削除します。
# !be really sure to call this!
# !DON'T BE TOO FAST!!! # pg_dropcluster 14 main
古いパッケージを削除します。
apt-get purge postgresql-14 postgresql-client-14
(注:これはKaliでも動作する可能性が高いです。)
答え2
または、データをダンプして再インポートする
sudo -u postgres pg_dumpall --cluster 14/main > ~/backup_postgres_all_dbs.sql
sudo -u postgres psql -d postgres --cluster 15/main -f ~/backup_postgres_all_dbs.sql