I am looking to drop a table in MySQL using Liquibase only if the table exists.
I am not able to figure out how to check if a table exists in Liquibase.
You should use
<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>
Also, you can check this link for more <preConditions> options:
http://www.liquibase.org/documentation/preconditions.html
Below is the Groovy version of dropping the table with Liquibase using preConditions chack that the table exists.
changeSet(author: "author", id: "some_id_value") {
    preConditions(onFail: "MARK_RAN"){
        tableExists(tableName: "table_name")
    }
    dropTable(tableName: "table_name")
}
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With