Лучшая общепринятая практика для сценариев вставки/обновления данных в flyway

сценарий: у меня есть две базы данных.

Первая база данных — это пустая база данных, используемая для тестирования. По сути, я запускаю flyway:migrate и создаю базу данных с полной схемой и запускаю свои интеграционные тесты для этой пустой базы данных. Любые данные, необходимые для интеграционных тестов, вставляются перед запуском тестов. Наконец, база данных удаляется с помощью команды flyway:clean, чтобы убедиться, что следующая сборка имеет чистую базу данных для работы.

Во второй базе данных есть данные.

Проблема: сборка завершается ошибкой на этапе интеграции, потому что у меня есть сценарии миграции, которые зависят от данных, которых нет в базе данных 1. В основном я вставляю данные на основе определенных данных, существующих в БД.

Является ли наилучшей общепринятой практикой для flyway использование только сценариев миграции типа изменения ddl и отсутствие сценариев вставки/обновления данных?


person user301693    schedule 02.12.2015    source источник
comment
Если это начальные данные (справочные данные, данные поиска), я бы сказал, что их следует добавить в сценарий миграции.   -  person David Atkinson    schedule 02.12.2015


Ответы (2)


В лучшем случае вы добавляете его как миграцию и изменяете в будущем через миграции. В том числе производство. Все может быть сложнее, если эти данные можно изменить в реальных средах другими способами. В таком случае я лично предпочел бы иметь (общее) тестовое приспособление для вставки демонстрационных данных.

person Mykola Gurov    schedule 03.12.2015

Рассмотрите возможность добавления справочных данных за оператором IF в обратном вызове afterMigrate:

http://flywaydb.org/documentation/callbacks.html

person David Atkinson    schedule 04.12.2015