J'organise un processus de livraison automatique en utilisant GIT, Bamboo, Ansible et Liquibase.Liquibase - différentes versions du fichier
J'ai quelques problèmes en essayant d'utiliser la fonction de retour à l'état initial de Liquibase. Fondamentalement, j'ai les mêmes fichiers, mon maître ensemble de changements et les fichiers de version (chacun ayant sa propre section de restauration), à deux endroits différents, par exemple un dossier "mise à niveau" et un dossier "rollback". Même si les fichiers sont identiques, la restauration ne fonctionne tout simplement pas. Illustrant:
+ deployment_folder
+ update
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
+ rollback
- changeset-master.xml
- changeset-1.0.0.xml
- changeset-1.0.1.xml
Les fichiers ont exactement le même contenu.
Exécution liquibase mises à jour et le marquage est très bien:
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.0
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml update
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=update/changeset-master.xml tag 1.0.1
Cependant, en essayant de rollback de 1.0.1 à l'aide du maître 1.0.0 du jeu de changement de rollback dossier il est dit « Liquibase Rollback réussie » mais les modifications ne sont pas annulées. La commande rollbackSQL n'affiche pas non plus d'instruction SQL pertinente autre que les mises à jour DATABASECHANGELOGLOCK.
$>liquibase --username=USR --password=*** --classpath=./ojdbc7.jar --driver=oracle.jdbc.driver.OracleDriver --url=jdbc:oracle:thin:@host:port:SID --changeLogFile=rollback/changeset-master.xml rollback 1.0.0
On dirait que le fichier doit être exactement la même chose (pour la somme de contrôle, je suppose), qui est un bloqueur de show dans mon cas, où je dois tirer constamment des versions de mon système de contrôle de code source, de sorte que les fichiers seront ne jamais être "pareil", bien qu'ils aient le même contenu. Est-il possible de désactiver cette vérification dans Liquibase? Actuellement j'utilise Liquibase 3.4.2.
J'ai oublié de mentionner si j'ai exécuté la restauration avec le même fichier, cela fonctionne. –
Checkout ['logicalFilePath'] (http://www.liquibase.org/documentation/databasechangelog.html). Aussi loin que je me souvienne, la somme de contrôle inclut le nom de fichier avec le chemin complet. Donc, même si vous avez le même fichier dans un dossier différent, il est considéré comme différemment. L'utilisation de 'logicalFilePath' devrait éviter cela. – Jens
Jens, vous l'avez. C'est exactement ça. Merci beaucoup! –