Rollback-Tags dienen zum Überprüfen der Konfiguration Ihrer Datenbank.
Die folgenden Befehle werden die Datenbankkonfiguration zurück von 3 Change rollen und einen Tag als „Checkpoint“ erstellen:
mvn liquibase:rollback -Dliquibase.rollbackCount=3
mvn liquibase:tag -Dliquibase.tag=checkpoint
Sie können nun die Datenbank aktualisieren und zu jedem Zeitpunkt Zurückkehren zu diesem Punkt mit dem Rollback tag:
mvn liquibase:rollback -Dliquibase.rollbackTag=checkpoint
oder alternativ die Rollback-SQL erzeugen:
mvn liquibase:rollbackSQL -Dliquibase.rollbackTag=checkpoint
Überarbeitetes Beispiel
Ich fand es anfangs schwierig herauszufinden, wie das Liquibase Maven Plugin zu konfigurieren ist. Nur für den Fall, dass es hier hilft, ist das Beispiel, das ich verwendet habe.
Das Liquibase-Update ist so konfiguriert, dass es automatisch ausgeführt wird. Anschließend wird die Datenbank mit der aktuellen Maven-Revisionsnummer markiert.
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.myspotontheweb.db</groupId>
<artifactId>liquibase-demo</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<!-- Liquibase settings -->
<liquibase.url>jdbc:h2:target/db1/liquibaseTest;AUTO_SERVER=TRUE</liquibase.url>
<liquibase.driver>org.h2.Driver</liquibase.driver>
<liquibase.username>user</liquibase.username>
<liquibase.password>pass</liquibase.password>
<liquibase.changeLogFile>com/myspotontheweb/db/changelog/db-changelog-master.xml</liquibase.changeLogFile>
<liquibase.promptOnNonLocalDatabase>false</liquibase.promptOnNonLocalDatabase>
</properties>
<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.3.162</version>
</dependency>
</dependencies>
<profiles>
<profile>
<id>dbupdate</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.liquibase</groupId>
<artifactId>liquibase-maven-plugin</artifactId>
<version>2.0.2</version>
<executions>
<execution>
<phase>process-resources</phase>
<configuration>
<tag>${project.version}</tag>
</configuration>
<goals>
<goal>update</goal>
<goal>tag</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>
</project>
Liquibase jetzt als Teil des Standard-Lebenszyklus konfiguriert ist, kann so wie folgt ausgeführt werden:
mvn clean compile
Du bist nicht Nathon voxland :-) –