我有一个由mysql数据库支持的dropwizard应用程序。我正在使用liquibase包装器进行数据库迁移
首先,我使用'db dump'命令为我自动生成migrations.xml文件。
现在我正在重构数据库,我希望能够更新特定的列名和表名。
我使用前提条件跳过已生成的表格以跳过“createTable
”命令
<preConditions onFail="MARK_RAN">
<not>
<tableExists tableName="myTable" />
</not>
</preConditions>
我现在如何跳过主键和外键约束的执行?我可以使用更改日志级别的前提条件来指示“跳过已执行的更改集”吗?或者我只是创建一个新的migrations.xml?这会删除现有数据吗?
答案 0 :(得分:1)
检查此前提条件http://www.liquibase.org/documentation/preconditions.html
您无法告诉liquibase跳过所有已执行的变更集,但您可以只排除该文件(您必须将migration.xml保存在其他文件夹中(即归档),因为有一天您可以创建db结构从头开始,您将需要更改集)
这意味着您可以使用要执行的更改集创建新的.xml文件。 Liquibase不会删除任何数据,它只适用于您提供给它的xml文件。