Nouvelle tentative d'une voie de migration de l'échec de migration
Je suis juste dans le processus de configuration et la pleine compréhension de la voie de migration, et je suis venu dans cette situation:
- J'ai réussi à configurer un nouveau projet de travail avec des voies de migration.
- J'ai réussi à migrer une base de données de test à partir de la version 0 de la 1.0.3.
- Migration vers la version 1.0.4 échec de l'exécution. (J'ai essayé d'ajouter une colonne qui était déjà là, pas de problèmes jusqu'à présent, mon mauvais.)
Cependant, une fois que j'ai fait les modifications nécessaires pour le script correspondant aux travaux de la voie de migration ne cessaient de ce message:
Current schema version: 1.0.4
com.googlecode.flyway.core.migration.MigrationException: Migration to version 1.0.4 failed! Please restore backups and roll back database and code!
Car je ne voulais pas de restaurer un dump complet et appliquer tous les migrations de nouveau, juste pour faire un alter table script fonctionne, ce que j'ai finalement bien eu quelques changements à la " schema_version table:
- 1er j'ai effacé l'entrée pour la version 1.0.4
- 2ème j'ai mis le " current_version terrain pour 1 pour la version 1.0.3
- Puis exécuté la voie de migration:migration de commande de nouveau
Après cela, la migration, enfin, a été appliqué et un message de réussite montré, cependant je ne suis pas tout à fait sûr si c'est la bonne approche pour traiter ce genre de situations. Je ne suis pas sûr si son droit de modifier le " schema_version table par moi-même car je pense qu'il ne devrait être modifié que par voie de migration lui-même.
Ainsi, après avoir expliqué ce qui s'est passé pour moi, ma question serait:
Est-il un moyen de "réessayer" pour appliquer un échec de la migration dans la voie de migration, sans modifier la "schema_version' tableau par moi-même?
Toute commande je ne suis pas au courant pour accomplir cette tâche?
OriginalL'auteur pablocmg | 2012-08-12
Vous devez vous connecter pour publier un commentaire.
Cette réponse dans la FAQ: http://flywaydb.org/documentation/faq.html#repair
La prochaine voie de migration 2.0 comprendra la commande de réparation. Ce code est déjà vérifié dans le SCM.
Remarque: Il ne traite que de la voie de migration de la table de métadonnées. Vous êtes responsable du nettoyage de tous les autres effets de l'échec d'une migration.
Mise à jour: de la voie de migration 2.0 a été publié. Vous pouvez le saisir à http://flywaydb.org
Que signifie "Vous êtes toujours responsable pour le nettoyage de tous les autres effets de l'échec d'une migration."? Je veux dire quelle démarche je dois faire pour le nettoyage d'un échec de la création de la table de la migration.
Cela dépend de ce que le script de migration. Comme si il tombe quelque chose, il ne sera pas tomber à nouveau avec succès!
OriginalL'auteur Axel Fontaine
Je ne sais pas si c'est une bonne idée ou pas, mais vous pouvez essayer de faire une réparation() si la migration() échoue:
OriginalL'auteur yglodt
Exemple complet, ce sera toujours essayer de réparer avant de lancer la migration, le reste de la configuration dans un fichier de config.
OriginalL'auteur Orhan