У нас есть задание по переносу данных, которое должно инициализировать схемы A
и B
в указанном порядке.Мы обрабатываем несколько схем, определяя несколько SpringLiquibase
, по одной для каждой схемы, каждая со своим собственным источником данных и собственным основным набором изменений.(Обратите внимание, что обычно в Spring Boot вам не нужно определять SpringLiquibase, потому что он будет обнаруживать один источник данных и автоматически настраивать SpringLiquibase для вас с этим источником данных.)
Порядок выполнения, кажется, различается в зависимости отвыполняется ли задание локально в среде IDE или связывается как приложение Spring Boot с одним JAR.
Как мы можем гарантировать, что два выполнения liquibase происходят в нужном нам порядке?
(Почему порядок важен: A
содержит несколько таблиц, а B
содержит представления, которые ссылаются на таблицы в A
. Мы должны убедиться, что мы grant select on A.* to B
, прежде чем пытаться create view B.some_view (...) as select ... from A.xyz
, в противном случае создание Bне удается из-за недостаточных привилегий.)