AI Platform Docs
Миграции

План миграции Agent Registry

Подготовка, применение, проверка и безопасное понижение версии схемы Agent Registry.

Канонический механизм

Alembic — единственный поддерживаемый способ создания и изменения схемы PostgreSQL Agent Registry. Приложение не вызывает SQLModel.metadata.create_all при запуске.

Garden и Helm запускают отдельное задание миграции до запуска процессов приложения. Проверка в начальном контейнере повторно подтверждает достигнутую версию. Оба действия используют транзакционную рекомендательную блокировку, поэтому параллельный запуск безопасно упорядочивается.

Low-code Runtime не имеет собственной изменяемой базы данных. База рабочих версий Low-code IDE принадлежит проекту-владельцу и должна иметь отдельный версионированный план миграции; ее нельзя изменять миграциями Agent Registry.

Последовательность версий

ПорядокВерсияИзменениеРиск понижения
1e298f58dfdacСоздает каталог R1, наблюдения, протокольные проекции, аудит, транзакционную очередь и задания поискаУдаляет всю схему R1 и все ее данные
2b41f876a08c2Добавляет reindex_job.retired_generations для учета прежних поколений OpenSearchУдаляет поле и сохраненные в нем сведения

Опубликованные исходные файлы:

Отдельные up.sql и down.sql не публикуются. Функции upgrade() и downgrade() находятся в одном версионированном исходном файле Alembic. Ручной SQL рядом создал бы второй источник истины.

Подготовка

  1. Зафиксируйте текущую версию Alembic, идентификатор образа приложения и версию конфигурации.
  2. Подтвердите свежую резервную копию PostgreSQL и возможность восстановления на отдельном экземпляре.
  3. Проверьте свободное место, длительность блокировок и окно изменения.
  4. Выполните alembic check на исходных файлах выпуска.
  5. Примените миграции к базе той же основной версии PostgreSQL и сопоставимого объема данных.
  6. Проверьте параллельный запуск двух заданий миграции.
  7. Проверьте понижение версии и сценарий ошибки на одноразовой копии.
  8. Убедитесь, что прежний и новый образы совместимы со схемой на период последовательного запуска экземпляров.
  9. Сохраните очищенный отчет без строки подключения и учетных данных.

Применение

Штатно миграцию запускает Garden. Для проверки на изолированной одноразовой базе допустимы команды:

uv run alembic upgrade head uv run alembic current uv run alembic check

Ожидаемая текущая версия — b41f876a08c2.

После применения проверьте:

  • наличие ожидаемых таблиц, ограничений и индексов;
  • одновременную фиксацию изменения каталога и записи транзакционной очереди;
  • отсутствие частично примененной схемы;
  • готовность API и Kubernetes Reconciler;
  • публикацию и обработку контрольного события;
  • создание нового задания пересчета поиска;
  • успешный возврат совместимого образа на одноразовой базе.

Ошибка миграции

  1. Остановите продвижение новой версии.
  2. Сохраните версию Alembic, очищенную ошибку базы, время и идентификатор задания.
  3. Определите, была ли транзакция отменена полностью.
  4. Верните образ приложения, совместимый с фактической схемой.
  5. Не запускайте разрушительный SQL из интерактивного контейнера.
  6. Не изменяйте таблицу версии Alembic вручную.
  7. Используйте понижение только после проверки сохранности затронутых данных.
  8. При повреждении восстановите резервную копию, затем повторите совместимое обновление на копии до возврата трафика.

Понижение версии

Команда для снятия только второй миграции:

uv run alembic downgrade e298f58dfdac

Она удаляет retired_generations и его содержимое. До выполнения сохраните сведения о прежних поколениях OpenSearch, которые еще нужны для возврата.

Переход ниже e298f58dfdac удаляет всю схему R1 и не является обычным откатом приложения. Для общей или промышленной среды он требует явного разрешения человека, проверенной резервной копии, плана восстановления и окна недоступности.

Проверка после понижения

Подтвердите:

  • соответствие версии Alembic выбранному образу;
  • чтение канонических данных;
  • свежесть наблюдения Kubernetes;
  • правильную работу отношений SpiceDB;
  • сокращение транзакционной очереди;
  • сходимость активного поколения OpenSearch;
  • ответы защищенного API при разрешенном, запрещенном и недоступном SpiceDB;
  • отсутствие ручных изменений производных хранилищ.

На этой странице