Миграция схемы данных
Миграция — это любое изменение схемы базы данных и данных в ней, возникающее во время разработки. Примеры миграций: добавление и удаление поля или индекса, изменение формата поля, добавление персистентной функции.
В коде миграций на языке Lua описываются:
- спейсы для хранения данных;
- хранимые функции для доступа к данным с пользовательской логикой.
Дополнительная функциональность, например по устареванию данных или оценке производительности, доступна пользователю через встроенные технологические роли.
Подробная информация о миграциях в Tarantool приведена в соответствующем разделе документации Tarantool.
В Tarantool DB загрузить миграции можно двумя способами:
- в веб-интерфейсе TCM на вкладке Migrations;
- с помощью tt CLI.
Миграции выполняются в лексикографическом порядке, поэтому им рекомендуется давать нумерованные названия, например
0001_migration.lua или 2023_12_24_migr.lua.
Выполнить миграцию с помощью утилиты tt CLI можно следующим образом:
-
В терминале поместить файлы миграции в папку
/migrations/scenario/. -
Загрузить миграции в централизованное хранилище с помощью команды
tt migrations publish, например:tt migrations publish http://admin:secret-cluster-cookie@localhost:2379/tdb/ migrationsЗдесь:
localhost:2379/tdb/— адрес одного из узлов etcd вместе с префиксом;migrations— папка, содержащая файлы миграций.
В случае успеха вывод может выглядеть так:
• 001_migration.lua: successfully published to key "001_migration.lua"
Узнать больше о командах tt migrations можно в документации Tarantool.
-
Применить миграции с помощью команды
tt migrations apply, например:tt migrations apply http://etcd1:2379/tdb --tarantool-username=admin --tarantool-password=secret-cluster-cookieВ случае успеха вывод будет выглядеть так:
• replicaset001:• 001_migration.lua: successfully applied• rsrouter001:• 001_migration.lua: successfully applied