Skip to content

immich の DB を immich-app/postgres に変更する

immich の db として tensorchord/pgvecto-rs の image を利用していたのですが,immich-app/postgres がリリースされていたのでこちらに変更します.

Upgrading | Immich

helmfile でセットアップしていたので values.yaml を変更します. 利用している Chart は bitnami/postgresql です. releases も追加して postgres が 2 つ立っている状態にします.

image:
registry: ghcr.io
repository: immich-app/postgres
tag: 14-vectorchord0.4.3-pgvectors0.2.0
extraEnvVars:
- name: DB_STORAGE_TYPE
value: "HDD"

一応 scale しておきます.

kubectl -n immich scale deployment immich-machine-learning --replicas 0
kubectl -n immich scale deployment immich-server --replicas 0

Pod が上がったら pg_dump します.

$ kubectl exec -i -n immich postgresql-0 -- pg_dump --clean --if-exists --dbname=immich --username=immich | gzip > dump.sql.gz

新しい postgres に restore します.

$ gunzip --stdout dump.sql.gz \
| sed "s/SELECT pg_catalog.set_config('search_path', '', false);/SELECT pg_catalog.set_config('search_path', 'public, pg_catalog', true);/g" \
| kubectl exec -i -n immich pgvectors-postgresql-0 -- \
psql --dbname=immich \
--username=immich \
--single-transaction \
--set ON_ERROR_STOP=on

DB_HOSTNAME 環境変数で新しい方を向くように変更します.

env:
DB_HOSTNAME: pgvecto-rs-postgresql