Перейти до вмісту

Резервні копії та оновлення

Увесь стан basedb зводиться до трьох речей: бази PostgreSQL, файлів полів «Файл» і «Зображення» та ключа екземпляра. Робіть резервні копії всіх трьох.

Екземпляр 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

У разі зберігання на диску вони лежать у томі files сервісу basedb:

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 шифрує секрети, збережені в базі (ключі ШІ, секрети вебхуків, секретні заголовки автоматизацій, посилання на форми). Резервна копія бази без її ключа не відновлює ці секрети. Зберігайте його у своєму менеджері секретів поруч із резервними копіями.

Спершу зробіть резервну копію бази, а потім:

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

BASEDB_VERSION фіксує конкретну версію (0.7.1) замість останньої (latest).

Під час запуску 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 працюють з однією базою, каталог оновлює лише один із них, а інші чекають. BASEDB_MIGRATE=0 забороняє екземпляру виконувати міграції: він лише перевіряє, що каталог має правильну версію, а інакше відмовляється запускатися.

basedb — вільне програмне забезпечення від Eodia, студії ШІ-орієнтованого програмного забезпечення.