问题
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.
来源:https://stackoverflow.com/questions/29920122/flyway-on-production-database-migration-checksum-mismatch