使用 Liquibase 删除 MySQL table

Drop MySQL table using Liquibase

我希望仅在 table 存在的情况下使用 Liquibase 在 MySQL 中删除 table。

我不知道如何检查 Liquibase 中是否存在 table。

你应该使用

<changeSet author="liquibase-docs" id="dropTable-example">
    <preConditions onFail="MARK_RAN"><tableExists schemaName="schemaName" tableName="tableName"/></preConditions>
    <dropTable cascadeConstraints="true"
            catalogName="cat"
            schemaName="public"
            tableName="person"/>
</changeSet>

此外,您可以查看此 link 以获得更多 <preConditions> 选项: http://www.liquibase.org/documentation/preconditions.html

下面是 Groovy 版本,使用 preConditions 查明 table 存在,使用 Liquibase 删除 table。

changeSet(author: "author", id: "some_id_value") {
    preConditions(onFail: "MARK_RAN"){
        tableExists(tableName: "table_name")
    }

    dropTable(tableName: "table_name")
}