Liquibase Quick-Start
Schritt 1: Changelog File anlegen
In der Datei Database-Change-Log werden alle Datenbank-Änderungen aufgelistet. Sie basiert auf XML, also beginnen wir mit einer leeren XML-Datei:
<?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"> </databaseChangeLog>
Schritt 2: changeSet hinzufügen
Jedes Change-Set wird eindeutig identifiziert durch die Attribute „id“ und „author“. Diese beiden Tags sowie der Name und das Package der changelog-Datei identifizieren die Änderung eindeutig. Wenn nur die „id“ spezifiziert werden müsste, wäre es zu einfach sie versehentlich zu duplizieren - vor allem, wenn Sie es mit vielen EntwicklerInnen und Code-Branches zu tun haben. Das „author“-Attribut einzubeziehen, minimiert das Risiko von Duplikaten.
Betrachten Sie jedes Change-Set als eine atomare Änderung, die Sie an Ihrer Datenbank vornehmen wollen. Normalerweise ist es am besten, nur eine einzige Änderung in ein Change-Set aufzunehmen. Es ist aber möglich, mehrere Änderungen einzuschließen, und das kann auch sinnvoll sein, wenn Sie mehrere Reihen einfügen wollen, die als eine einzige Transaction hinzugefügt werden sollen. Liquibase wird versuchen, jedes Change-Set als eine Transaction auszuführen, aber viele Datenbanken werden intern für bestimmte Kommandos (create table, drop table etc.) eigene Transaktionen starten.
<?xml version="1.0" encoding="UTF-8"?> <databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd"> <changeSet id="1" author="bob"> <createTable tableName="department"> <column name="id" type="int"> <constraints primaryKey="true" nullable="false"/> </column> <column name="name" type="varchar(50)"> <constraints nullable="false"/> </column> <column name="active" type="boolean" defaultValueBoolean="true"/> </createTable> </changeSet> </databaseChangeLog>
Schritt 3: changeSet ausführen
Es gibt verschiedene Wege, das Change-Log-File auszuführen, z.B. über die Kommandozeile, mit Ant, Maven, Grails oder einem Servlet-Listener.
Hier ein Beispiel für MySQL über JDBC:
liquibase --driver=com.mysql.jdbc.Driver \
--classpath=/path/to/classes \
--changeLogFile=com/example/db.changelog.xml \
--url="jdbc:mysql://localhost/example" \
--username=user \
--password=asdf \
migrate
Es werden sehr viel mehr Datenbanken von Liquibase unterstützt. Eine Liste aller unterstützten Datenbanken mit dem jeweils benötigten JDBC-Treiber, URL, Classpath usw. findet sich unter Datenbanken.
Schritt 4: Datenbank überprüfen
Sie werden sehen, dass Ihre Datenbank jetzt eine Tabelle namens „department“ enthält. Zwei weitere Tabellen wurden erzeugt: „databasechangelog“ und „databasechangeloglock“. Die erste enthält eine Liste aller Statements die auf der Datenbank ausgeführt wurden. Die zweite Tabelle wird benutzt, um zu garantieren, dass nicht zwei Rechner gleichzeitig versuchen, die Datenbank zu verändern.
Die nächsten Schritte
Dieser Quick-Start-Guide soll Ihnen beim Einstieg in Liquibase helfen. Eine vollständige Beschreibung aller Einsatzmöglichkeiten finden Sie im Liquibase-Manual. Lesen Sie unbedingt den Abschnitt "Best practices". Ein ausführliches Szenario findet sich im Tutorial "Using Oracle".
Sie können sich auch aufgezeichnete Sessions mit Liquibase ansehen oder die Foren besuchen.
