Перейти к основному содержимому
Версия: 3.0

Резервное копирование и обновление iQBot

Что нужно сохранять​

В стандартной установке (IQB_IQBFS_STORAGE=database, Messaging и NLU запускает ядро) все данные лежат в одной базе PostgreSQL: боты и их конфигурация, пользователи и роли, диалоги, события, а также обученные модели NLU. Поэтому основа резервной копии это дамп этой базы.

ЧтоГдеКак сохранять
База данныхPostgreSQLpg_dump, по расписанию
Файл .envрядом с исполняемым файлом iqbotкопия файла, права 600, хранить отдельно от дампа
Каталог data/рядом с исполняемым файломнужен, только если IQB_IQBFS_STORAGE=disk, при database данные ботов в базе
Файлы языковых моделейкаталог языкового серверазаменимы: поставляются по запросу в support@iqstore.ru
Службы systemd, docker-compose.ymlсерверв системе хранения конфигураций

Если вы запускаете Messaging или NLU отдельно и даёте им собственные базы, дампы нужны для каждой из них, а у Messaging ещё и значение ENCRYPTION_KEY: без него сохранённые токены вебхуков не прочитать.

Дамп и восстановление базы​

pg_dump -Fc -h localhost -U iqbot iqbot > iqbot-$(date +%F).dump

Восстановление в пустую базу:

createdb -h localhost -U iqbot iqbot_restore
pg_restore -h localhost -U iqbot -d iqbot_restore --no-owner iqbot-2026-11-06.dump

Копия, которую ни разу не восстанавливали, не считается резервной. Раз в квартал разворачивайте дамп на тестовом стенде и проверяйте, что платформа с ним запускается и боты отвечают.

Резервная копия отдельного бота​

Для переноса и точечного резервирования используйте возможности самой платформы:

  • Экспорт в списке ботов скачивает архив бота .tgz. Он нужен, чтобы перенести бота на другой стенд или сохранить его перед рискованными изменениями.
  • Создать ревизию сохраняет контрольную точку внутри платформы, Откат возвращает бота к ней. Откат перезаписывает текущее содержимое бота без возможности отмены.
  • Раздел «Контроль версий» скачивает архив всего сервера, команды pull и push переносят данные между серверами, см. Командная строка iQBot.

Архив бота и ревизии не заменяют дамп базы: в них нет пользователей, ролей и журналов.

Обновление версии​

  1. Сообщите пользователям об окне обслуживания.
  2. Сделайте дамп базы (см. выше) и сохраните копию .env.
  3. Остановите платформу (systemctl stop iqbot или docker compose stop iqbot).
  4. Замените файлы. Для установки из архива распакуйте новый архив поверх каталога установки: .env и data/ в архиве нет, они не затрагиваются.
    sudo unzip -o iqbot-v<новая-версия>-linux-x64.zip -d /opt/iqbot
    sudo chown -R iqbot:iqbot /opt/iqbot
    sudo chmod +x /opt/iqbot/iqbot /opt/iqbot/bin/nlu /opt/iqbot/bin/messaging
    Для Docker замените тег образа в docker-compose.yml.
  5. Посмотрите, какие миграции потребуются, ничего не выполняя:
    sudo -u iqbot /opt/iqbot/iqbot migrate up --dry
  6. Запустите платформу с автоматической миграцией. Переменная IQB_AUTO_MIGRATE=true или ключ --autoMigrate нужны, только пока версия меняется, потом их можно убрать.
    sudo -u iqbot /opt/iqbot/iqbot --autoMigrate
  7. Дождитесь строки iQBot is ready и проверьте curl http://localhost:3000/status: все компоненты должны быть в состоянии up.
  8. Откройте консоль, проверьте раздел «Готовность к продуктиву» и ответ хотя бы одного бота в эмуляторе. Если у ботов есть тестовые сценарии, запустите их: ./iqbot test-scenarios --botId <бот>.
  9. Верните службу в штатный режим (systemctl start iqbot, без --autoMigrate).

NLU и Messaging лежат в каталоге bin дистрибутива и обновляются вместе с ядром. Языковые файлы при обновлении менять не нужно, пока вам не сообщили о новой версии моделей.

Откат обновления​

Если после обновления платформа работает неправильно, а миграции уже выполнены, вернуть версию можно только вместе с данными:

  1. Остановите платформу.
  2. Верните прежние файлы дистрибутива (старый архив или старый тег образа).
  3. Восстановите базу из дампа, снятого на шаге 2.
  4. Запустите платформу.

Откат миграций командой ./iqbot migrate down --target <версия> возможен, но надёжным способом остаётся восстановление дампа.

Переход на версию 3.0​

iQBot 3.0 это новая базовая версия: автоматического переноса данных с версий 2.x и более ранних нет. Устанавливайте 3.0 на чистую базу данных, а ботов переносите архивами: в старой версии экспортируйте бота (Экспорт), в новой импортируйте его (Импортировать бота из архива). Пользователей, роли и настройки сервера создайте заново, при необходимости заранее сохраните выгрузку нужных данных из старой базы. Миграции, которые выполняет migrate, начинаются с версии 3.0.