【问题标题】:Liquibase - How to skip changesets that have been executedLiquibase - 如何跳过已执行的变更集
【发布时间】:2017-08-24 14:26:59
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: sql-update refactoring liquibase dropwizard


    【解决方案1】:

    检查此前提条件http://www.liquibase.org/documentation/preconditions.html

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

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

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 2021-01-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      相关资源
      最近更新 更多