Flyway on production database - Migration Checksum

2019-05-01 04:16发布

问题:

Every time I change something from DB structure I create a new migration file using timestamp to execute in order, with a clean database the migrate command (with maven plugin or command-line tool) it works perfectly, but in a production database, with the same DB structure but with data added I got this error:

Failed to execute goal org.flywaydb:flyway-maven-plugin:3.2.1:migrate (main) on project eee-ejb: org.flywaydb.core.api.FlywayException: Validate failed. Migration Checksum mismatch for migration 1430224929 [ERROR] -> Applied to database : -1639634536 [ERROR] -> Resolved locally : -1412099238

How can I use flyway in a production database where data is constantly added?

回答1:

This has nothing to do with data being added. It is the migration script itself that is being modified. One place to check is Git CRLF normalization issues.

Update: Flyway 4.0 now automatically takes care of this.



回答2:

The script that was originally ran is now changed. If you are sure that the change is what you'd wanted, run

./flyway repair

This will accept the change, update the metadata table and you will not get the error.