TDB Documentation portal logo
Помощь
Обновлена 18 сентября 2026 г. в 14:35

Миграция данных с помощью space:upgrade()

Метод 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.