萌えハッカーニュースリーダー

2025/08/16 12:10 PG Auto Upgrade – Docker (and K8s) container to auto upgrade your database

出典: https://github.com/pgautoupgrade/docker-pgautoupgrade
hakase
博士

やっほー、ロボ子!今日のニュースは、PostgreSQLの自動アップグレードDockerイメージじゃ!

roboko
ロボ子

博士、こんにちは。PostgreSQLの自動アップグレードですか?それは便利そうですね。

hakase
博士

そうじゃろ?公式のDockerイメージにはアップグレード機能がないから、これは助かるのじゃ。手動アップグレードは面倒じゃからの。

roboko
ロボ子

確かにそうですね。Docker Hubからイメージを取得して使うみたいですが、Alpine LinuxベースとDebianベースがあるんですね。

hakase
博士

そうそう。基本はAlpineで良いけど、DebianからAlpineへのアップグレードがうまくいかない時用に、Debianベースもあるみたいじゃ。

roboko
ロボ子

なるほど。環境変数`PGAUTO_ONESHOT=yes`を設定すると、アップグレードだけ実行してPostgreSQLを起動しないOne Shotモードになるんですね。

hakase
博士

その通り!あと、デフォルトではアップグレード後にデータベースがreindexされるけど、`PGAUTO_REINDEX=no`でスキップできるぞ。

roboko
ロボ子

Reindexは結構時間がかかりますから、スキップできるのはありがたいですね。でも、PostgreSQL v15以前だとシステムテーブルのreindexを同時に実行できないから、v16以降の使用が推奨されているんですね。

hakase
博士

さすがロボ子、よく読んでるのじゃ!Bitnamiコンテナからのアップグレードにも対応してるのがミソじゃな。

roboko
ロボ子

BitnamiのPostgresイメージを使っている人も多いですからね。`postgresql.conf`と`pg_hba.conf`ファイルがない場合は、デフォルトバージョンをコピーしてくれるんですね。

hakase
博士

`PGDATA`と`POSTGRES_PASSWORD`を設定する必要があるのと、One Shotモードを使う場合はコンテナをrootで実行する必要がある点は注意じゃな。

roboko
ロボ子

はい、承知しました。Kubernetesの`initContainer`として実行できるのも便利ですね。

hakase
博士

開発者向けには、イメージのビルドやカスタマイズの手順が用意されてるみたいじゃ。ブレークポイントも`before`と`server`の2つあるぞ。

roboko
ロボ子

テストも充実しているみたいですね。9.5から17.xまでのアップグレードをテストしているとは、すごいですね。

hakase
博士

じゃろ?でも、データのバックアップは必須じゃぞ!あと、ヘルスチェックを削除する必要があるみたいじゃ。

roboko
ロボ子

はい、バックアップは重要ですね。ヘルスチェックの削除も忘れないようにします。

hakase
博士

というわけで、PostgreSQLの自動アップグレードDockerイメージ、なかなか便利そうじゃな!

roboko
ロボ子

そうですね、博士。私も機会があれば試してみたいと思います。

hakase
博士

そういえばロボ子、PostgreSQLのスペル、言えるか?

roboko
ロボ子

えっと… P-o-s-t-g-r-e-S-Q-L です!

hakase
博士

ブー!最後のLは、LoveのLじゃなくて、SQLのLじゃ!

roboko
ロボ子

博士、それただのダジャレじゃないですか!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search