0
votes

Sauter Liquibase Changer si la table existe

Nouveau à Liquibase. J'ai un schéma existant géré par Hibernate. J'ai maintenant besoin de supprimer des tables et j'utilise Liquibase. J'ai écrit une config suppilie avec succès la table.

Mais je veux que le chèque ne fonctionne que si le tableau existe, car une nouvelle installation du système n'aurait pas la table puisque les objets de cartographie hibernate n'existent plus.

J'ai tenté d'ajouter une condition préalable. Cependant, mes journaux indiquent toujours que Liquibase Faillase Becuase il essaie de supprimer la table et il n'existe pas. Qu'est-ce que je ne fais-je pas correctement? J'utilise l'erreur de démarrage / java xxx

erreur dans le journal: tableau public.some_old_table n'existe pas ... xxx

C'est comme si TI vérifie les conditions préalables ... et les défaut toujours.

a également essayé xxx < / pré>


0 commentaires

3 Réponses :


1
votes

Dans votre deuxième essai, mettez votre commentaire après votre condition préalable

Preconditions at the changelog level apply to all changesets, not just those listed in the current changelog or its child changelogs.


2 commentaires

Oui, j'ai déplacé la condition préalable à changements. J'ai ajouté un onFailMessage et j'ai vu qu'il était frappé. Le problème est que l'échec devrait être sur le plan.


Je n'avais pas de problème avec les commentaires avant une condition préalable dans ma version de Liquibase, 3.7.0, mais je vais les déplacer de toute façon.



1
votes

Le problème était dans l'attribut on-échec n'étant pas éempli correctement. On - échec devrait être tifail.

Comme @julian mentionné, il est préférable de mettre une condition préalable à une condition préalable à un jeu de modifications spécifique, et le commentaire devrait aller après une condition préalable, bien que ce n'était pas le problème à la main ici. P >

databaseChangeLog:
  - changeSet:
      id: zzchange-1.0-remove-xczczxc
      author: zzzz
      preConditions:
        on-fail: mark_ran
        tableExists:
          tableName: some_old_table
      comment: Remove some_old_table table - no longer needed
      changes:
        - dropTable:
            tableName: some_old_table


0 commentaires

0
votes

Veuillez utiliser la syntaxe ci-dessous pour ignorer les modifications apportées au tableau présent xxx


0 commentaires