Перейти к основному содержимому

Резервное копирование

Этот документ был подготовлен при помощи ИИ

Текст может содержать неточности, устаревшие данные или технические ошибки. Пожалуйста, проверяйте критически важную информацию перед использованием.

Резервная копия установки Architeezy — это дампы двух баз данных и файл с их секретами.

Хранимые данные

Всё, что стоит сохранять, хранится в двух базах данных PostgreSQL:

  • architeezy, в контейнере db, на томе architeezy-db-data. Пространства моделирования, проекты, модели, представления, состав участников проектов и загруженные в проекты изображения. Изображения хранятся как строки таблиц, а не как файлы, поэтому отдельный каталог загрузок копировать не нужно.
  • keycloak, в контейнере keycloak-db, на томе architeezy-keycloak-db-data. Учётные записи пользователей, учётные данные, realm и его клиенты, включая секрет клиента.

К дампам добавьте:

  • Файл .env: в нём секреты, с которыми создавались базы данных. Без клиентского секрета дамп keycloak почти бесполезен.
  • Ваши изменения в docker-compose.yml и в конфигурации обратного прокси.

Redis хранит только сессии. При его потере пользователям придётся войти заново, других последствий нет, поэтому резервная копия ему не нужна.

Создание резервной копии

Подгрузите .env, чтобы в командах подставились имена пользователей баз данных, и снимите дампы обеих баз, не останавливая приложение:

set -a && . ./.env && set +a
docker compose exec -T db \
pg_dump -U "$DATABASE_USERNAME" -Fc architeezy > architeezy-$(date +%F).dump
docker compose exec -T keycloak-db \
pg_dump -U "$KEYCLOAK_DATABASE_USERNAME" -Fc keycloak > keycloak-$(date +%F).dump

Восстанавливайте с помощью pg_restore. Перед восстановлением остановите сервисы backend и api-gateway, а после запустите их снова:

docker compose exec -T db \
pg_restore -U "$DATABASE_USERNAME" -d architeezy --clean --if-exists < architeezy-<date>.dump

Отдельный проект переносят и через интерфейс: в меню проекта выберите Скачать, а вернуть файл обратно — кнопкой Загрузить проект на стартовой странице. Так проект переносят из одной установки в другую. Дамп базы данных это не заменяет: в дамп попадают ещё состав участников и история.