I use Liquibase from Grails. Recently, I migrated from 1.8.4 to 2.0.3 and I have some issues with the existing migrations.
Most of my changesets have runOnChange=true. I read the migration note and was careful that no changeset are modified until the migration is over.
The problem is that Liquibase tries to run changesets that already ran previously, and if fails because the work contained in those changesets was already done (for instance, the table is already created, so trying to create it again will fail).
Those changesets run on various databases (HSQLDB, MS SQL, MySQL).
Do you have any idea what could cause the changeset to be run? I want the existing changests not to run at all.
I’m not sure but maybe this can help. Note that the checksum version changed from 2 to 3, so if you run the same set of scripts but with 2.0.3 this might have cleaned the entire databasechangelog table checksums and they are all null now.
This will cause that the changesets are reexecuted. I would suggest that you review this and fix the checksums to be 3:xxxx and not 2:xxxx.
Hope this helps.
Thank you, this is probably the reason. As you said, I ran the same set of scripts again, so Liquibase is probably trying to run them again.
I will test this solution and see if that works.
Thanks a lot for your help.