Migrating from flyway

I’m migrating from flyway to Liquibase 4.21.1
Now ,I deployed all my scripts to the snowflake database.However, I need an automated way to update my scripts (for example adding new column to a table in existing script) when I did this I received checksum mismatch error. ,my changelog.xml file look like this :

Note:I’m using gitlab for CI/CD

<?xml version="1.0" encoding="UTF-8"?>
<databaseChangeLog
        xmlns="http://www.liquibase.org/xml/ns/dbchangelog"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xmlns:ext="http://www.liquibase.org/xml/ns/dbchangelog-ext"
        xmlns:pro="http://www.liquibase.org/xml/ns/pro"
        xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog
            http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-latest.xsd
            http://www.liquibase.org/xml/ns/dbchangelog-ext http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-ext.xsd
            http://www.liquibase.org/xml/ns/pro http://www.liquibase.org/xml/ns/pro/liquibase-pro-latest.xsd">

    <includeAll path="./snowflake/antt/schemas" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/fileformats" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/stages" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/tables" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/views" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/procedures" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt/tasks" relativeToChangelogFile="true"/>

    <includeAll path="./snowflake/antt_reporting/schemas" relativeToChangelogFile="true"/>
    <includeAll path="./snowflake/antt_reporting/views" relativeToChangelogFile="true"/>
<changeSet id="dynamic-changes" author="team.market.data.insights" runOnChange="true">
        <sql splitStatements="true">
            <file path="./snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql" relativeToChangelogFile="true"/>
        </sql>
    </changeSet>
</databaseChangeLog>

Now ,when I changed one file I got the following error:


[2023-05-23 16:37:53] SEVERE [liquibase.integration] Validation Failed:

[835](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L835) 1 changesets check sum

[836](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L836) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[837](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L837)liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException: Validation Failed:

[838](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L838) 1 changesets check sum

[839](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L839) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[840](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L840) at liquibase.command.CommandScope.execute(CommandScope.java:235)

[841](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L841) at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:55)

[842](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L842) at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:24)

[843](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L843) at picocli.CommandLine.executeUserObject(CommandLine.java:2041)

[844](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L844) at picocli.CommandLine.access$1500(CommandLine.java:148)

[845](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L845) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)

[846](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L846) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)

[847](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L847) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)

[848](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L848) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)

[849](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L849) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)

[850](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L850) at picocli.CommandLine.execute(CommandLine.java:2170)

[851](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L851) at liquibase.integration.commandline.LiquibaseCommandLine.lambda$null$2(LiquibaseCommandLine.java:383)

[852](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L852) at liquibase.Scope.child(Scope.java:203)

[853](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L853) at liquibase.Scope.child(Scope.java:179)

[854](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L854) at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$3(LiquibaseCommandLine.java:358)

[855](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L855) at liquibase.Scope.child(Scope.java:203)

[856](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L856) at liquibase.Scope.child(Scope.java:179)

[857](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L857) at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:356)

[858](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L858) at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:93)

[859](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L859) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[860](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L860) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

[861](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L861) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

[862](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L862) at java.lang.reflect.Method.invoke(Method.java:498)

[863](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L863) at liquibase.integration.commandline.LiquibaseLauncher.main(LiquibaseLauncher.java:107)

[864](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L864)Caused by: liquibase.exception.ValidationFailedException: Validation Failed:

[865](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L865) 1 changesets check sum

[866](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L866) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[867](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L867) at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:354)

[868](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L868) at liquibase.Liquibase.lambda$listUnrunChangeSets$16(Liquibase.java:1287)

[869](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L869) at liquibase.Scope.lambda$child$0(Scope.java:194)

[870](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L870) at liquibase.Scope.child(Scope.java:203)

[871](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L871) at liquibase.Scope.child(Scope.java:193)

[872](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L872) at liquibase.Scope.child(Scope.java:172)

[873](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L873) at liquibase.Liquibase.runInScope(Liquibase.java:1618)

[874](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L874) at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:1279)

[875](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L875) at liquibase.Liquibase.reportStatus(Liquibase.java:1350)

[876](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L876) at liquibase.integration.commandline.Main.doMigration(Main.java:1681)

[877](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L877) at liquibase.integration.commandline.Main$1.lambda$run$2(Main.java:417)

[878](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L878) at liquibase.Scope.lambda$child$0(Scope.java:194)

[879](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L879) at liquibase.Scope.child(Scope.java:203)

[880](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L880) at liquibase.Scope.child(Scope.java:193)

[881](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L881) at liquibase.Scope.child(Scope.java:172)

[882](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L882) at liquibase.integration.commandline.Main$1.run(Main.java:416)

[883](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L883) at liquibase.integration.commandline.Main$1.run(Main.java:234)

[884](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L884) at liquibase.Scope.child(Scope.java:203)

[885](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L885) at liquibase.Scope.child(Scope.java:179)

[886](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L886) at liquibase.integration.commandline.Main.run(Main.java:234)

[887](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L887) at liquibase.command.AbstractCliWrapperCommandStep.run(AbstractCliWrapperCommandStep.java:32)

[888](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L888) at liquibase.command.CommandScope.execute(CommandScope.java:212)

[889](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L889) ... 23 more

[890](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L890)Unexpected error running Liquibase: Validation Failed:

[891](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L891) 1 changesets check sum

[892](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L892) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[893](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L893)liquibase.exception.CommandExecutionException: liquibase.exception.ValidationFailedException: Validation Failed:

[894](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L894) 1 changesets check sum

[895](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L895) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[896](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L896) at liquibase.command.CommandScope.execute(CommandScope.java:235)

[897](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L897) at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:55)

[898](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L898) at liquibase.integration.commandline.CommandRunner.call(CommandRunner.java:24)

[899](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L899) at picocli.CommandLine.executeUserObject(CommandLine.java:2041)

[900](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L900) at picocli.CommandLine.access$1500(CommandLine.java:148)

[901](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L901) at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2461)

[902](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L902) at picocli.CommandLine$RunLast.handle(CommandLine.java:2453)

[903](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L903) at picocli.CommandLine$RunLast.handle(CommandLine.java:2415)

[904](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L904) at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2273)

[905](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L905) at picocli.CommandLine$RunLast.execute(CommandLine.java:2417)

[906](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L906) at picocli.CommandLine.execute(CommandLine.java:2170)

[907](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L907) at liquibase.integration.commandline.LiquibaseCommandLine.lambda$null$2(LiquibaseCommandLine.java:383)

[908](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L908) at liquibase.Scope.child(Scope.java:203)

[909](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L909) at liquibase.Scope.child(Scope.java:179)

[910](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L910) at liquibase.integration.commandline.LiquibaseCommandLine.lambda$execute$3(LiquibaseCommandLine.java:358)

[911](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L911) at liquibase.Scope.child(Scope.java:203)

[912](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L912) at liquibase.Scope.child(Scope.java:179)

[913](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L913) at liquibase.integration.commandline.LiquibaseCommandLine.execute(LiquibaseCommandLine.java:356)

[914](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L914) at liquibase.integration.commandline.LiquibaseCommandLine.main(LiquibaseCommandLine.java:93)

[915](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L915) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

[916](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L916) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

[917](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L917) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

[918](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L918) at java.lang.reflect.Method.invoke(Method.java:498)

[919](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L919) at liquibase.integration.commandline.LiquibaseLauncher.main(LiquibaseLauncher.java:107)

[920](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L920)Caused by: liquibase.exception.ValidationFailedException: Validation Failed:

[921](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L921) 1 changesets check sum

[922](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L922) snowflake/antt/tables/01_create_table_antt_authorizations_raw_data.sql::raw::includeAll was: 8:295dd550c8adb24df3a5055b6dad8f2e but is now: 8:4530f24ce0f1b36d190aa2efefb7286f

[923](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L923) at liquibase.changelog.DatabaseChangeLog.validate(DatabaseChangeLog.java:354)

[924](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L924) at liquibase.Liquibase.lambda$listUnrunChangeSets$16(Liquibase.java:1287)

[925](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L925) at liquibase.Scope.lambda$child$0(Scope.java:194)

[926](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L926) at liquibase.Scope.child(Scope.java:203)

[927](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L927) at liquibase.Scope.child(Scope.java:193)

[928](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L928) at liquibase.Scope.child(Scope.java:172)

[929](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L929) at liquibase.Liquibase.runInScope(Liquibase.java:1618)

[930](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L930) at liquibase.Liquibase.listUnrunChangeSets(Liquibase.java:1279)

[931](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L931) at liquibase.Liquibase.reportStatus(Liquibase.java:1350)

[932](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L932) at liquibase.integration.commandline.Main.doMigration(Main.java:1681)

[933](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L933) at liquibase.integration.commandline.Main$1.lambda$run$2(Main.java:417)

[934](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L934) at liquibase.Scope.lambda$child$0(Scope.java:194)

[935](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L935) at liquibase.Scope.child(Scope.java:203)

[936](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L936) at liquibase.Scope.child(Scope.java:193)

[937](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L937) at liquibase.Scope.child(Scope.java:172)

[938](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L938) at liquibase.integration.commandline.Main$1.run(Main.java:416)

[939](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L939) at liquibase.integration.commandline.Main$1.run(Main.java:234)

[940](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L940) at liquibase.Scope.child(Scope.java:203)

[941](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L941) at liquibase.Scope.child(Scope.java:179)

[942](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L942) at liquibase.integration.commandline.Main.run(Main.java:234)

[943](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L943) at liquibase.command.AbstractCliWrapperCommandStep.run(AbstractCliWrapperCommandStep.java:32)

[944](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L944) at liquibase.command.CommandScope.execute(CommandScope.java:212)

[945](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L945) ... 23 more

[946](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L946)Output saved to output.sql

[947](https://git.flix.tech/network/mdi/flixlabs-q2-2023/-/jobs/6577594#L947)[2023-05-23 16:37:53] INFO [liquibase.ui] Output saved to output.sql

The checksum error is telling you that you modified a changeset that had already been executed, which should not be done.

Because you are using includeAll, and not defining explicit changesets (I see “::raw::includeAll” above), you will not be able to add changes to an existing changelog file, since each changelog is seen as a implicit changeset with the setup you are using.

So if you want to continue with this setup, each change you make will need to be in it’s own changelog file.

I would highly recommend you look into the formatted sql format, which allows you to explicitly define one or many changesets in a changelog. Then you can add a new changeset to an existing changelog and Liquibase will detect that new changeset as “pending” and execute it.

Also, for stored procedures you can use the runOnChange:true flag to allow you to maintain the stored procedure code in the same changelog, and Liquibase will detect the modification and execute the changeset again.

2 Likes