Обновлена 30 июля 2026 г. в 16:49
Миграция данных с помощью space:upgrade()
Метод space:upgrade() позволяет вносить несовместимые изменения в формат спейса, например изменить название спейса или удалить его.
Метод space:upgrade() принимает следующие аргументы:
format: новый формат спейса. Он может конфликтовать с предыдущим, но индексируемые поля должны быть неизменными. Данные, записываемые в спейс, должны соответствовать новому формату во время миграции.func: название функции выполнения миграций. Функция должна быть персистентной. Она принимает исходный кортеж, а возвращает измененный кортеж. Функция должна быть идемпотентной, чтобы избежать ошибки миграции или получения некорректных данных при чтении данных из спейса во время миграции. а из этого следует, чтоfuncможет быть применена кtupleнесколько раз.mode: режим работыspace:upgrade. Возможные значения:dryrun— проверка корректности миграции. Функцияfuncвыполняется на каждом кортеже, но данные не меняются;upgrade— обновление данных;dryrun+upgrade— запуск проверки миграции, после которой при отсутствии ошибок выполняетсяupgrade.
is_async- булевый флаг неблокируемого выполненияspace:upgrade().
space:upgrade() возвращает объект future. По нему можно узнать статус миграции (future:info),
отменить миграцию (future:cancel) или дождаться окончания миграции (future:wait).
Подробная информация о методе space:upgrade() приведена в документации Tarantool.