Выполнение миграций
В состав Тarantool Cluster Manager входит веб-интерфейс для управления и выполнения миграций в подключенных кластерах. Подробнее о миграциях в Tarantool см. в разделе Миграции.
Миграции - это именованные Lua-файлы с кодом, изменяющим схему данных кластера, например, создающим спейс, изменяющим его формат или добавляющим индексы. В TCM есть отдельная страница, на которой можно упорядочивать миграции, редактировать их код и применять их к кластеру.
Инструменты управления миграциями в TCM находятся на странице Cluster > Migrations.
Чтобы создать миграцию:
-
Нажмите Add (значок +) на странице Migrations.
-
Введите имя миграции.
-
Напишите код миграции в окне редактора. Подробнее о работе со схемой данных Tarantool см. справочник по модулю box.schema.
-
Сохраните миграцию, нажав Save. При этом сохраняется миграция, открытая в редакторе в данный момент.
После подготовки набора миграций примените его к кластеру. Чтобы применить все сохраненные миграции к кластеру сразу, нажмите Apply.
Миграции, которые созданы, но еще не сохранены, не применяются при нажатии Apply.
Чтобы проверить результаты применения миграций на кластере, используйте виджет Migrated на панели состояния кластера. Он отражает общий результат последнего примененного набора миграций:
- Если все сохраненные миграции применены успешно, виджет зеленый.
- Если какая-либо миграция из набора завершилась с ошибкой на определенных экземплярах, цвет виджета меняется на желтый.
- Если есть сохраненные миграции, которые еще не применены, виджет становится серым.
При наведении курсора на виджет отображается количество экземпляров, на которых текущий сохраненный набор миграций успешно применен.
Статус каждой отдельной миграции можно также проверить на странице Migrations:
- Успешно примененные миграции отмечены зеленой галочкой.
- Миграции, завершившиеся с ошибкой, отмечены значком с восклицательным знаком (!).
Наведите курсор на значок, чтобы увидеть информацию об ошибке. Чтобы повторно применить миграцию, завершившуюся с ошибкой, нажмите Force apply во всплывающем окне с информацией об ошибке.
Приведенный ниже код миграции создает форматированный спейс с двумя индексами в шардированном кластере:
local function apply_scenario()local space = box.schema.space.create('customers')space:format {{ name = 'id', type = 'number' },{ name = 'bucket_id', type = 'number' },{ name = 'name', type = 'string' },}space:create_index('primary', { parts = { 'id' } })space:create_index('bucket_id', { parts = { 'bucket_id' }, unique = false })endreturn {apply = {scenario = apply_scenario,},}