2016-06-06 9 views
4

Ich beobachte ein seltsames Liquibase-Verhalten, wenn ich ein einfaches Maven-Projekt auf dem TeamCity Build Agent ausführe.Liquibase führt Changeset mehrmals in einem einzigen Maven-Build aus

Maven Projektstruktur:

changelogs/ 
databaseChangeLog.xml 
pom.xml 

Run-Befehl: mvn liquibase: update

databaseChangeLogs.xml enthält nächste Zeile: <includeAll path="changelogs/"/>

Aber Buildprotokoll enthält doppelte Datensätze:

liquibase: databaseChangeLog.xml: /home/teamcity/BuildAgent/work/28fe713da351c06d/changelogs/1.xml: ChangeSet /home/teamcity/BuildAgent/work/28fe713da351c06d/changelogs/1.xml ran successfully in 40ms 

liquibase: databaseChangeLog.xml: Custom SQL executed 
liquibase: databaseChangeLog.xml: changelogs/1.xml: ChangeSet changelogs/1.xml ran successfully in 36ms 

So scheint wie Liquibase Bild ked up changeset zweimal von verschiedenen Orten: aus Build-Agent Build-Ordner und root des Projekts.

Hat jemand das gleiche Problem? Irgendwelche Ideen, wie Sie das beheben können?

Antwort

5

Liquibase hat einen Designfehler, der auf den ersten Blick "identische" Änderungssets als unterschiedlich ansieht. Um eine solche Besonderheit zu umgehen, können Sie das Attribut logicalFilePath entweder auf databaseChangeLog oder auf jedem changeSet Tag verwenden. Dieser wird eine weitere Ebene der Identität, Einzigartigkeit zu einem Ihrer Änderungsmenge hinzufügen.