Сделать резервную копию и восстановить базу
Примечание
Все данные ArchMap хранятся в базе PostgreSQL: на диске приложение ничего не держит. Поэтому резервная копия ArchMap сводится к копии базы. Делайте её регулярно и обязательно перед обновлением.
Сделать копию базы#
Чтобы сделать копию базы, выполните команду для своего способа установки:
-
Docker Compose (в папке с файлом
compose.yaml):docker compose exec db pg_dump -U archmap -Fc archmap > archmap-$(date +%F).dump -
Kubernetes или сервер (с машины, откуда доступна база):
pg_dump -Fc -h pg.example.com -U archmap archmap > archmap-$(date +%F).dump
Примечание
Версия pg_dump должна быть той же или новее, чем версия сервера PostgreSQL.
Примечание
На сервере установщик сам делает копию базы перед каждым обновлением, которое меняет её схему, и хранит пять последних копий в папке /opt/archmap/backups (см. Обновить на сервере).
Восстановить базу из копии#
Чтобы восстановить базу из копии, выполните следующие действия:
-
Остановите ArchMap:
- Docker Compose:
docker compose stop archmap; - Kubernetes:
kubectl -n archmap scale deploy/archmap --replicas=0; - сервер:
sudo systemctl stop archmap.
- Docker Compose:
-
Восстановите базу из файла копии:
-
Docker Compose:
docker compose exec -T db pg_restore -U archmap -d archmap --clean --if-exists < archmap-ГГГГ-ММ-ДД.dump -
Kubernetes или сервер:
pg_restore --clean --if-exists -h pg.example.com -U archmap -d archmap archmap-ГГГГ-ММ-ДД.dump
-
-
Запустите ArchMap:
- Docker Compose:
docker compose start archmap; - Kubernetes:
kubectl -n archmap scale deploy/archmap --replicas=1; - сервер:
sudo systemctl start archmap.
- Docker Compose:
Примечание
Восстановление заменяет все данные в базе данными из копии: правки, сделанные после копии, пропадут.
Примечание
Ключ подписи входа хранится не в базе, а в настройках (на сервере в файле /etc/archmap/archmap.env, в Docker Compose в томе archmap_data, в Kubernetes в Secret). Если ключ потерян, данные не пострадают: всем пользователям просто придётся войти заново.
Примечание
Отдельный проект можно сохранить архивом из интерфейса и перенести на другой сервер ArchMap (см. Экспортировать и импортировать проект). Архив не заменяет копию базы: в него не попадают учётные записи, участники и расположение объектов.