Миграция схемы данных
Миграция — это любое изменение схемы базы данных и данных в ней, возникающее во время разработки. Примеры миграций: добавление и удаление поля или индекса, изменение формата поля, добавление персистентной функции.
В Tarantool DB загрузить миграции можно двумя способами:
- в веб-интерфейсе Tarantool DB;
- с помощью GraphQL (через POST-запрос).
В коде миграций на языке Lua описываются:
- спейсы для хранения данных;
- хранимые процедуры для доступа к данным с пользовательской логикой.
Дополнительная функциональность, например по устареванию данных или оценке производительности, доступна пользователю через встроенные технологические роли.
Подробная информация о миграциях в Tarantool приведена в соответствующем разделе документации Tarantool.
В Tarantool DB выполнить миграции можно двумя способами:
- в веб-интерфейсе Tarantool DB;
- с помощью GraphQL.
Миграции выполняются в лексикографическом порядке, поэтому им рекомендуется давать нумерованные названия, например
0001_migration.lua или 2023_12_24_migr.lua.
В примерах ниже используется файл миграции 002_test.lua.
Веб-интерфейс
- Откройте вкладку Code в меню слева.
- Добавьте в
migrations/sourceфайл миграции002_test.lua. - Скопируйте код из файла
002_test.luaв этот файл. - Нажмите кнопку
Apply. - Конфигурация успешно применена.
GraphQL API
Для выполнения миграции запустите следующий запрос на изменение (мутацию):
curl -v --raw 'http://localhost:8081/admin/api' -X POST --data '{"query":"mutation($sections: [ConfigSectionInput!]) {cluster {config(sections: $sections) {filenamecontent}}}","variables": {"sections": [{"filename":"migrations/source/002_test.lua","content":"'"$(cat 002_test.lua | sed 's/"/\\"/g' )"'"}]}}'
Чтобы выполнить старт миграции, запустите в консоли следующую команду:
curl -X POST localhost:8081/migrations/up
Дождитесь ответа:
{"applied":["002_test.lua"]}
Проверьте, что миграция прошла успешно.