我们的项目有多个模块。我们为每个模块创建了 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"/>
...
...
<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"/>
....
...
...
<changeSet author="****" id="1">
<createTable tableName="foo2">
<column name="id" type="BIGINT">
...
...
...
</createTable>
</changeSet>
Liquibase按以下顺序执行了更改日志文件
我希望liquibase应该按以下顺序执行
liquibase是否有任何选项将按照其依赖顺序执行数据库变更日志文件?
答案 0 :(得分:0)
否,Liquibase无法确定变更集的“正确”顺序。这取决于用户以正确的顺序放置它们。
有几种技术可以做到这一点。许多人只有一个df['index'].str.replace('bs\(np.clip\(', '').str.replace(', 0, np.inf\), degree=1, knots\=\[', '').str.replace('[,\.\)\[\]!?0-9]', '').str.strip()
,其中包含所有变更集。其他人将只有一个包含其他变更日志的主变更日志文件,然后他们将使用文件命名约定,其中前3个或4个字符是数字,例如changelog.xml
,然后是0001_add_customer_table.xml
。如果使用这样的约定,则可能要使用以“ 0010”开头的“跳过编号”,然后是0020、0030等,这样(希望)在极少数情况下,您需要在另外两个之间插入变更集变更集,例如,您将有空间添加0015。
答案 1 :(得分:0)
使用includeAll
时会发生这种情况,为避免此类问题,我添加了所有文件,并按所需顺序将其包含在内,从而解决了该问题。
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.2.xsd">
<include file="db/changelog/changes/version/db.changelog.test-v1.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v2.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v3.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v4.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v5.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v6.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v7.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v8.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v9.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v10.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v11.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v12.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v13.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v14.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v15.sql"/>
<include file="db/changelog/changes/version/db.changelog.test-v16.sql"/>