Flyway для нескольких подключений к базе данных (Java / Spring) - PullRequest
0 голосов
/ 23 сентября 2019

Мое приложение Java / Springboot 2 читает из одной базы данных и пишет во вторую.Код работает нормально (два разных источника данных, фабрики сущностей, каталоги и т. Д.), Но я не знаю, как заставить Flyway использовать сценарий A для обновления БД A и сценарий B для обновления БД B.

Поиск в Google дал результаты по разным отдельным базам данных в разных средах и по нескольким базам данных одного типа, но я не нашел правильных условий поиска, чтобы найти ответ о том, как общаться с двумя разными базами данных с разными схемами одновременно.

1 Ответ

0 голосов
/ 23 сентября 2019

Как указано в документации по Spring Boot

https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-execute-flyway-database-migrations-on-startup

Вы также можете добавить специальный заполнитель {vendor} для использования специфичных для поставщика сценариев.Предположим следующее:

 spring.flyway.locations=classpath:db/migration/\{vendor} 

Вместо использования db /igration предыдущая конфигурация устанавливает папку для использования в соответствии с типом базы данных (например, db /igration / mysql дляMySQL).Список поддерживаемых баз данных доступен в DatabaseDriver.

Вы можете просто изменить расположение по умолчанию flyway

spring.flyway.locations=classpath:db/migration/vendor1, classpath:db/migration/vendor2

Spring Boot вызывает Flyway.migrate () для выполнения миграции базы данных,Если вы хотите больше контроля, предоставьте @Bean, который реализует FlywayMigrationStrategy.

...