Liquibase - 如何跳过已执行的变更集

Liquibase - How to skip changesets that have been executed

我有一个由 mysql 数据库支持的 dropwizard 应用程序。我正在使用 liquibase 包装器进行数据库迁移

首先,我使用“db dump”命令为我自动生成 migrations.xml 文件。

现在我正在重构数据库,我希望能够更新特定的列名和表名。

我使用前提条件跳过已经生成的表来跳过'createTable'命令

<preConditions onFail="MARK_RAN">
            <not>
                <tableExists tableName="myTable" />
            </not>
        </preConditions>

现在如何跳过主键和外键约束的执行?在变更日志级别是否有一个先决条件我可以用来指示“跳过已经执行的变更集”?或者我只是创建一个新的migrations.xml?这会删除现有数据吗?

先检查这个http://www.liquibase.org/documentation/preconditions.html

您不能告诉 liquibase 跳过所有已执行的变更集,但您可以只排除该文件(您必须将 migration.xml 保存在其他文件夹(即存档)中,因为有一天您可以创建从头开始创建数据库结构,您将需要该变更集)

这意味着您可以创建新的 .xml 文件,其中包含您要执行的变更集。 Liquibase 不会删除任何数据,它只能处理您提供给它的 xml 个文件。