コンテンツにスキップ

バックアップとアップデート

basedbの状態は、3つのものですべてです:PostgreSQLデータベース、ファイルフィールドと画像フィールドのファイル、そしてインスタンスキー。この3つをすべてバックアップしてください。

basedbのインスタンスは通常のPostgreSQLデータベースなので、pg_dumpで十分です。

Fenêtre de terminal
docker compose exec -T db pg_dump -U basedb -Fc basedb > basedb-$(date +%F).dump

復元するには、空のデータベースに対して次を実行します:

Fenêtre de terminal
docker compose exec -T db pg_restore -U basedb -d basedb --clean --if-exists < basedb-2026-09-26.dump

ディスクストレージの場合、ファイルはbasedbサービスのfilesボリュームにあります:

Fenêtre de terminal
docker run --rm -v basedb_files:/data -v "$PWD":/backup alpine \
tar czf /backup/basedb-files-$(date +%F).tgz -C /data .

S3ストレージの場合は、プロバイダーのバックアップ方針(バージョニング、レプリケーション)に従ってください。

BASEDB_ENCRYPTION_KEYは、データベースに保存されたシークレット(AIのキー、Webhookのシークレット、オートメーションのシークレットヘッダー、フォームのリンク)を暗号化します。キーのないデータベースのバックアップでは、これらのシークレットは復元できません。 キーはシークレット管理ツールに、バックアップと一緒に保管してください。

まずデータベースをバックアップしてから、次を実行します:

Fenêtre de terminal
docker compose pull
docker compose up -d

BASEDB_VERSIONで、最新版(latest)ではなく特定のバージョン(0.7.1)に固定できます。

起動時に、basedbはカタログを自動で更新します。現在のバージョンにまだ適用されていないマイグレーションを、順番に、それぞれ独自のトランザクションで適用し、_basedb.catalog_migrationに記録します。データはそのまま残ります。ログにはその旨が表示されます:

basedb-1 | [api] Catalogue : 0002_partage_et_comptes.sql appliquée (84 ms).
basedb-1 | [api] Catalogue mis à jour : version 2.

バージョンを飛ばしてアップデートすることもできます。不足しているマイグレーションは、すべて順番に一度に適用されます。マイグレーションが失敗すると、カタログは前のバージョンのまま損なわれずに残り、basedbは起動しません。ログには、そのマイグレーションとエラーが示されます。

ダウングレードはできません。 古いバージョンは、知らない形式に書き込むことを避けるため、新しいバージョンが更新したカタログでは起動を拒否します。元に戻すには、アップデート前に取ったバックアップを復元してください。

同じデータベースで複数のbasedbインスタンスを動かしている場合、カタログを更新するのは1つだけで、他のインスタンスはそれを待ちます。BASEDB_MIGRATE=0を設定したインスタンスはマイグレーションを行わず、カタログが正しいバージョンかどうかを確認するだけで、そうでなければ起動を拒否します。

basedbは、AIネイティブなソフトウェアスタジオEodiaが開発するフリーソフトウェアです。