2017-09-14 3 views
-1

Si un script échoue pendant la migration, flyway n'ajoutera pas d'enregistrement à schema_version dans DB2 db pour l'instruction ayant échoué.Le chemin de migration ne marque pas l'instruction dans schema_version en tant qu'échec dans DB2

Avez-vous une idée de la façon d'éviter cette situation?

I did a migration, 4th script failed, i expect this script will have status ABORTED/FAILED

+0

Voulez-vous dire modifier la version_schema même si une migration a échoué? Cela ressemble à une mauvaise idée. – mao

+0

non, je veux dire que si un script échoue pendant la migration dans DB2, vous n'avez pas besoin d'utiliser la réparation de commande, le script a le statut "En attente" –

+0

Il semble que les documents de survol qui ont tenté et les migrations non appliquées restent en attente. Le -612 (nom en double) suggère qu'il y a une erreur de codage dans le script concerné, alors pourquoi ne pas résoudre ce problème? – mao

Répondre

1

Une explication des différences de comportement des voies de migration que vous observez est la façon dont gère Oracle DDL (validation implicite avant/après chaque DDL) par rapport à la façon dont poignées Db2 DDL (implémente DDL sous contrôle des transactions par défaut). Ainsi, avec Db2, il est possible de faire en sorte que chaque migration soit atomique et annule en cas de panne, ce qui signifie qu'il n'y a rien à réparer et donc aucune action de réparation nécessaire.