Выполнение миграций с удалённой машины | Tdb

Версия:

latest
Руководство пользователя Миграция схемы данных Выполнение миграций с удалённой машины

Выполнение миграций с удалённой машины

В этом руководстве показано, как выполнить миграции с сервера, который не входит в состав кластера.

Руководство включает следующие шаги:

Пререквизиты

Для выполнения примера требуются:

  • установленный Docker-образ Tarantool DB;

  • приложение Docker compose;

  • исходные файлы примера migrations_from_remote_hosts.

    Примечание

    Есть два способа получить исходные файлы примера:

    • Архив с полной документацией Tarantool DB, полученный по почте или скачанный в личном кабинете tarantool.io. Пример архива: tarantooldb-documentation-0.8.0.tar.gz. Пример migrations_from_remote_hosts расположен в таком архиве в директории ./doc/examples/migrations_from_remote_hosts/.

    • Отдельный архив migrations_from_remote_hosts.tar.gz, скачанный c сайта Tarantool.

Запустить кластер из этого примера можно любым доступным способом – через Ansible Tarantool Enterprise, docker compose или локально. В руководстве для запуска используется Docker compose.

Запуск и настройка стенда

Для запуска и настройки стенда используются файлы из папки migrations_from_remote_hosts:

  • docker-compose.yml – описание узлов кластера;

  • installer/topology.json – описание топологии кластера.

Перейдите в директорию примера migrations_from_remote_host:

cd ./doc/examples/migrations_from_remote_host/

Запустите стенд через Docker compose:

docker compose up -d  --build

Чтобы проверить успешный запуск кластера, выполните следующую команду:

docker compose logs installer

При успешном старте последняя строка в выводе будет следующей:

Cluster started

Запущенный стенд состоит из:

  • кластера Tarantool DB из двух роутеров и двух шардов;

  • веб-сервера nginx, предоставляющего доступ к удаленному серверу по HTTP с авторизацией и балансировкой нагрузки.

Удаленный доступ к админ-функциям кластера доступен по адресу localhost:8000. Проверить и настроить узлы кластера изнутри можно в веб-интерфейсе Tarantool DB – например, по адресу localhost:8081.

Запуск миграции

Для запуска миграции используются следующие файлы:

  • config.yml (./user-host/config.yml) – файл конфигурации кластера;

  • migrations/source/ (./user-host/migrations/source/) – директория, содержащая файлы миграций;

  • скрипт migrate.sh (./client/utils/migrate.sh) – загрузка конфигурации кластера, клиентского кода и выполнения миграций.

Перед запуском миграции скопируйте скрипт migrate.sh, выполняющий миграции, из директории client/utils:

cp ../../../client/utils/migrate.sh ./
chmod a+x migrate.sh

Запустите миграцию:

TARANTOOLDB_TARGET_URI=localhost:8000 TARANTOOLDB_BOOTSTRAP_PATH=./user-host/ TARANTOOLDB_HEADERS="Authorization: Bearer 123" ./migrate.sh

Здесь для удаленного доступа используется авторизация по токену. В запросе авторизации должен присутствовать заголовок Authorization: Bearer 123. Логика проверки этого заголовка настроена в конфигурации nginx.

После успешного завершения миграции в консоли появится следующее сообщение:

Load config..
Config loaded
Start migrate..
Migrations completed successfully

Проверить успешное выполнение миграций можно в веб-интерфейсе Tarantool DB, там можно увидеть загруженную конфигурацию кластера и созданные спейсы test1 и test2 (вкладка Space Explorer).

Остановка стенда

Чтобы остановить стенд, выполните следующую команду:

docker compose down
Нашли ответ на свой вопрос?
Обратная связь