🐡

Fly.ioのPostgreSQLをバージョンアップ

2024/09/13に公開

1年ほど前にFly.ioにデプロイしたアプリがあり、アプリの各種ライブラリはアップデートしていたのですが、PostgreSQLのアップデートをしていないことに気づいて、その方法を調べました。

PostgreSQLの現在のバージョンを確認

以下のコマンドを実行してPostgreSQLの現在のバージョンを確認します。

fly image show --app <postgres-app-name>
Updates available:

Machine "abcdefghijklmn" flyio/postgres-flex:15.3 (v0.0.43) -> flyio/postgres-flex:15.8 (v0.0.62)

Run `flyctl image update` to migrate to the latest image version.
Image Details
MACHINE ID    	REGISTRY            	REPOSITORY         	TAG 	VERSIONDIGEST                                                                 	LABELS                                                                                               
abcdefghijklmn	registry-1.docker.io	flyio/postgres-flex	15.3	v0.0.43sha256:e5882c1841195860fb002e4eebfb84b47afbf193e0c7bd739dfd1056ef7c6b62	fly.app_role=postgres_clusterfly.pg-manager=repmgrfly.pg-version=15.3-1.pgdg120+1fly.version=v0.0.43

PostgreSQLをバージョンアップ

以下のコマンドを実行すると確認のダイアログが表示され、その後にPostgreSQLがバージョンアップされます。

fly image update --app <postgres-app-name>
The following changes will be applied to all Postgres machines.
Machines not running the official Postgres image will be skipped.

  	... // 91 identical lines
  	    }
  	  },
- 	  "image": "registry-1.docker.io/flyio/postgres-flex:15.3@sha256:e5882c1841195860fb002e4eebfb84b47afbf193e0c7bd739dfd1056ef7c6b62",
+ 	  "image": "docker-hub-mirror.fly.io/flyio/postgres-flex:15.8@sha256:5016ffb34e66eca43d4f9ef2f898c166257bd28bd5095c41d049a5e3be15caf5",
  	  "restart": {
  	    "policy": "on-failure",
  	... // 3 identical lines
  	
? Apply changes? Yes
Identifying cluster role(s)
  Machine abcdefghijklmn: primary
Updating machine abcdefghijklmn
  Waiting for abcdefghijklmn to become healthy (started, 3/3)
Machine abcdefghijklmn updated successfully!

https://community.fly.io/t/what-version-of-postgres-is-installed-by-default/3190

Discussion