Управление централизованными миграциями
$ tt migrations COMMAND [COMMAND_OPTION ...]
Команда tt migrations управляет централизованными миграциями в кластере Tarantool EE. Подробное руководство по
использованию механизма централизованных миграций см. в разделе
Централизованные миграции с помощью tt.
COMMAND может принимать одно из следующих значений:
$ tt migrations publish ETCD_URI [MIGRATIONS_DIR | MIGRATION_FILE] [OPTION ...]
tt migrations publish отправляет файлы миграций в централизованное хранилище конфигурации кластера для последующего выполнения.
По умолчанию команда отправляет все файлы из каталога migrations/ в текущем каталоге.
$ tt migrations publish "https://user:pass@localhost:2379/myapp"
Чтобы выбрать другой каталог с файлами миграций, укажите путь к нему в качестве аргумента команды:
$ tt migrations publish "https://user:pass@localhost:2379/myapp" my_migrations
Чтобы опубликовать отдельную миграцию из файла, укажите ее имя или путь в качестве аргумента команды:
$ tt migrations publish "https://user:pass@localhost:2379/myapp" migrations/000001_create_space.lua
При необходимости можно указать ключ, который будет использоваться в качестве идентификатора миграции вместо имени файла:
$ tt migrations publish "https://user:pass@localhost:2379/myapp" file.lua \--key=000001_create_space.lua
При публикации миграций tt выполняет следующие проверки:
- Синтаксические ошибки в файлах миграций. Чтобы пропустить проверку синтаксиса, добавьте
параметр
--skip-syntax-check. - Наличие миграций с теми же именами. Чтобы перезаписать существующую миграцию с тем же именем,
добавьте параметр
--overwrite. - Порядок следования имен миграций. По умолчанию
tt migrationsдобавляет новые миграции только в конец списка миграций, упорядоченного лексикографически. Например, если уже опубликованы миграции001.luaи003.lua, попытка опубликовать002.luaзавершится ошибкой. Чтобы принудительно опубликовать миграции без учета порядка, добавьте параметр--ignore-order-violation.
$ tt migrations apply ETCD_URI [OPTION ...]
Команда tt migrations apply применяет опубликованные миграции к кластеру.
Команда выполняет все миграции из централизованного хранилища конфигурации кластера на всех экземплярах с доступом
на чтение и запись (лидерах наборов реплик).
$ tt migrations apply "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass
Чтобы применить отдельную опубликованную миграцию, укажите ее имя в параметре --migration:
$ tt migrations apply "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--migration=000001_create_space.lua
Чтобы применить миграции в отдельном наборе реплик, укажите параметр
replicaset:
$ tt migrations apply "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--replicaset=storage-001
Команда также предоставляет параметры для устранения проблем с миграциями: --ignore-order-violation, --force-reapply и
--ignore-preceding-status. Подробнее об их использовании см. в разделе
Устранение неполадок при миграциях.
$ tt migrations status ETCD_URI [OPTION ...]
Команда tt migrations status выводит список миграций, опубликованных в централизованное хранилище,
и результаты их выполнения на экземплярах кластера.
Возможные статусы миграций:
APPLY_STARTED– выполнение миграции начато, но еще не завершено или прервано с помощью команды tt migrations stop;APPLIED– миграция успешно применена на экземпляре;FAILED– при выполнении миграции на экземпляре возникли ошибки.
Чтобы получить список миграций, хранящихся в указанном хранилище etcd, и информацию об их выполнении в кластере, выполните:
$ tt migrations status "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass
Если в кластере используется SSL-шифрование, добавьте параметры SSL. Подробнее см. в разделе Аутентификация.
Используйте параметры --migration и --replicaset, чтобы получить информацию о конкретных миграциях или наборах реплик:
$ tt migrations status "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--replicaset=storage-001 --migration=000001_create_writers_space.lua
Параметр --display-mode позволяет настроить формат вывода команды:
- При значении
--display-mode config-storageкоманда выводит только список миграций, опубликованных в централизованное хранилище. - При значении
--display-mode clusterкоманда выводит только статусы миграций на экземплярах кластера.
Чтобы узнать результаты выполнения миграции в конкретном наборе реплик кластера, выполните:
$ tt migrations status "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--replicaset=storage-001 --display-mode=cluster
$ tt migrations stop ETCD_URI [OPTION ...]
Команда tt migrations stop останавливает выполнение миграций в кластере.
Чтобы остановить выполнение миграции, запущенной в кластере в данный момент:
$ tt migrations stop "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass
Команда tt migrations stop прерывает выполнение одной миграции. Если вызвать команду для прерывания процесса,
применяющего несколько миграций, те из них, которые были завершены до вызова, получат статус APPLIED.
Миграция, прерванная вызовом, останется в статусе APPLY_STARTED.
$ tt migrations remove ETCD_URI [OPTION ...]
Команда tt migrations remove удаляет опубликованные миграции из централизованного хранилища. С помощью
дополнительных параметров можно также удалить информацию о выполнении миграций на экземплярах кластера.
Чтобы удалить все миграции из указанного централизованного хранилища:
$ tt migrations remove "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass
Чтобы удалить конкретную миграцию, укажите её имя в параметре --migration:
$ tt migrations remove "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--migration=000001_create_writers_space.lua
Перед удалением миграций команда проверяет их статус в кластере. Чтобы
игнорировать статус и удалить миграции в любом случае, добавьте параметр --force-remove-on=config-storage:
$ tt migrations remove "https://user:pass@localhost:2379/myapp" \--force-remove-on=config-storage
Чтобы удалить информацию о выполнении миграций из кластера (очистить статус миграций), используйте
параметр --force-remove-on=cluster:
$ tt migrations remove "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--force-remove-on=cluster
Чтобы очистить всю информацию о миграциях из централизованного хранилища и кластера, используйте
параметр --force-remove-on=all:
$ tt migrations remove "https://user:pass@localhost:2379/myapp" \--tarantool-username=admin --tarantool-password=pass \--force-remove-on=all
Поскольку tt migrations управляет миграциями через централизованное хранилище etcd, для доступа к этому хранилищу
требуются учетные данные. Передать учетные данные etcd можно двумя способами:
- Через параметры командной строки
--config-storage-usernameи--config-storage-password; - Через URI etcd, например,
https://user:pass@localhost:2379/myapp.
Учетные данные, указанные в URI, имеют более высокий приоритет.
Для команд, подключающихся к кластеру (то есть для всех, кроме publish), также требуются учетные данные Tarantool.
Они передаются в параметрах --tarantool-username и --tarantool-password.
Если в кластере используется SSL-шифрование трафика, укажите необходимые параметры подключения в
параметрах --tarantool-ssl*: --tarantool-sslcertfile, --tarantool-sslkeyfile и других. Полный
список параметров см. в разделе Параметры.
Применимо к: apply
Время ожидания получения блокировки файбера миграций в секундах. Значение по умолчанию: 60. Блокировка файбера
используется для предотвращения параллельного выполнения миграций.
Пароль для подключения к централизованному хранилищу миграций (etcd).
См. также раздел Аутентификация.
Имя пользователя для подключения к централизованному хранилищу миграций (etcd).
См. также раздел Аутентификация.
Применимо к: status
Вывод только определенной информации. Возможные значения:
config-storage– информация о миграциях, опубликованных в централизованное хранилище.cluster– информация о миграциях, примененных в кластере.
См. также описание status.
Применимо к: apply, remove, status, stop
Время ожидания выполнения операции на отдельном экземпляре Tarantool в секундах. Значения по умолчанию:
3дляremove,statusиstop;3600дляapply.
Применимо к: apply
Применить миграции без учета их предыдущего статуса.
Применимо к: remove
Удаление миграций без учета их статуса. Возможные значения:
config-storage: удалить миграции в централизованном хранилище etcd, игнорируя статус применения в кластере.cluster: удалить информацию о статусе миграций только в кластере Tarantool.all: выполнить принудительное удаление как вconfig-storage, так и вcluster.
Применимо к: apply, publish
Пропустить проверку порядка сценариев миграций перед публикацией.
Применимо к: apply
Пропустить проверку статуса предшествующих миграций при применении.
Применимо к: publish
Записать сценарий в ключ etcd /<prefix>/migrations/scenario/<key>. Только для публикации отдельного файла.
Применимо к: apply, remove, status
Миграция, которую нужно применить, удалить или проверить статус.
Применимо к: publish
Перезаписать существующие ключи миграций в хранилище.
Применимо к: apply, remove, status, stop
Выполнить операцию только в указанном наборе реплик.
Применимо к: publish
Пропустить проверку синтаксиса перед публикацией.
Применимо к: apply, remove, status, stop
Тип аутентификации, используемый для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Время ожидания подключения к экземплярам кластера Tarantool в секундах. Значение по умолчанию: 3.
Применимо к: apply, remove, status, stop
Пароль для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Файл SSL CA для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Файл SSL-сертификата для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Разделенный двоеточиями список SSL-шифров для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Файл SSL-ключа для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Пароль к файлу SSL-ключа для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Файл со списком паролей к файлу SSL-ключа для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Использовать ли SSL для подключения к экземплярам кластера.
Применимо к: apply, remove, status, stop
Имя пользователя для подключения к экземплярам кластера Tarantool.