2015-04-28 6 views
5

Ogni volta che cambio qualcosa dalla struttura DB, creo un nuovo file di migrazione usando il timestamp per eseguire in ordine, con un database pulito il comando migrate (con il plugin maven o lo strumento da riga di comando) funziona perfettamente, ma in un database di produzione, con la stessa struttura di DB, ma con i dati aggiunti ho ottenuto questo errore:Flyway sul database di produzione - Mancata corrispondenza del checksum di migrazione

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

Come posso utilizzare flyway in un database di produzione in cui viene costantemente aggiunto i dati?

+0

Hai la soluzione? –

risposta

4

Questo non ha nulla a che fare con i dati aggiunti. È lo stesso script di migrazione che viene modificato. Un posto da verificare è Git CRLF problemi di normalizzazione.

Aggiornamento: Flyway 4.0 ora si occupa automaticamente di questo.

+0

Il problema era la sequenza di migrazione, sto usando il timestamp per questo, grazie per la risposta. – Claudinei

+0

ottenere lo stesso problema lavorando su DB locale ma non in produzione, è un altro modo per risolvere questo problema? –

3

Lo script originariamente eseguito è ora modificato. Se si è certi che il cambiamento è quello che ci voleva, eseguire

./flyway repair

Questo accetterà la modifica, aggiornare la tabella dei metadati e non sarà possibile ottenere l'errore.