Обновлена 18 сентября 2026 г. в 14:35
Миграция данных с помощью 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 Enterprise.