概要
PostgreSQLのバージョンを13から15にアップグレードしました。
アップグレードの方法をここでは紹介します。
環境
- アップグレード前: PostgreSQL 13.8
- アップグレード後: PostgreSQL 15.0
アップグレードの方針
PostgreSQLの13.8から最新の15.0にメジャーアップグレードをしました。最新のPostgreSQL 15では、パフォーマンスがかなり向上しているようですので、更新したいと思いました。
アップグレードの方法はいくつかあるのですが、今回私の環境ではDockerでPostgreSQLを動かしていた関係で、pg_upgradeではなく、pg_dumpallを使う方法を利用します。
なぜpg_upgradeを使わないのかというと、pg_upgradeでは、アップグレード前のバージョンとアップグレード後のバージョンのbinディレクトリを指定する必要があるのですが、Dockerを利用している私の環境では、この療法を用意するのが面倒だというのが理由です。
pg_dumpallで作成したダンプファイルをアップグレード後のPostgreSQLでリストアするという流れで進みます。
アップグレード方法
最初に、サーバーにログインして、PostgreSQL全体のダンプを行います。全体のダンプをする場合はpg_dumpallを使います。pg_dumpではありません。
pg_dumpall -f dump.sql -U postgres
これで、dump.sqlという名前でダンプファイルを作成できました。
この後、PostgreSQLのアップグレードを行い、バージョン15に上げます。
アップグレード後に、リストアを行います。
psql -f dump.sql -U postgres
これでアップグレードは終了です。
エラーについて
アップグレード後に、PostgreSQLにアクセスできないという問題が発生してしまいました。
その際の問題の内容と解決方法については、別の記事にまとめました。
https://www.tmp1024.com/postgresql-upgrade-13-to-15
さいごに
同じメジャーバーションで行う、マイナーアップデートとは異なり、メジャーバージョンの異なるアップデートは少し大変でした。
しかし、pg_upgradeでhなく、pg_dumpallを使ったのが原因か、楽にアップグレードができたように思います。
ダンプによってバックアップを兼ねることができるので、何かあった際も安心です。
他の方々の参考になれば嬉しいです。