【发布时间】:2020-01-15 00:13:53
【问题描述】:
我们的项目有多个模块。我们为每个模块创建了 databasechangelog 文件。 Liquibase 是按字母顺序而不是模块依赖顺序执行这些文件的。 例如
Project
|
Module1
|
| - domain
| | - foo1
|
| - Changelogfile1.xml
Module2
|
| - domain
| | - foo2
|
| - Changelogfil2.xml
Module3
|
| - domain
| | - foo3
|
| - Changelogfile3.xml
我的 master.xml 文件如下所示
...
<includeAll path="classpath*:${path}/x.x.x"/>
...
- Changelogfile1.xml 包含 foo1 表创建变更集信息及其约束定义变更集
...
<changeSet author="****" id="1">
<createTable tableName="foo1">
<column name="id" type="BIGINT">
...
<column name="foo2_id" type="INT">
...
</createTable>
</changeSet>
....
<addForeignKeyConstraint baseColumnNames="foo2_id" baseTableName="foo1"
constraintName="name" deferrable="false" initiallyDeferred="false"
referencedColumnNames="id" referencedTableName="foo2"/>
....
...
- Changelogfile2.xml 包含 foo2 表创建变更集信息及其约束定义变更集
...
<changeSet author="****" id="1">
<createTable tableName="foo2">
<column name="id" type="BIGINT">
...
...
...
</createTable>
</changeSet>
- Changelogfile3.xml 包含 foo3 表创建变更集信息及其约束定义变更集
- 这里的 Module1 依赖于 Module2。表 foo1 与 foo2 表有 OnetoOne 关系
Liquibase 已按以下顺序执行更改日志文件
- 变更日志文件1
- 更改日志文件2
- 更改日志文件3
我希望 liquibase 应该按照以下顺序执行
- 更改日志文件2
- 变更日志文件1
- 更改日志文件3
liquibase 是否有任何选项将按其依赖顺序执行数据库更改日志文件?
【问题讨论】: