概要

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を使ったのが原因か、楽にアップグレードができたように思います。

ダンプによってバックアップを兼ねることができるので、何かあった際も安心です。

他の方々の参考になれば嬉しいです。