Training, Workshops, Softwareentwicklung

Hibernate Tutorial

Flyway

In diesem Tutorial benutzen wir das Flyway-Maven-Plugin, um unser Datenbankschema zu managen.

Flyway Plugin
<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>${flyway.version}</version>
    <executions>
        <execution>
            <id>test</id>
            <phase>process-test-classes</phase>
            <goals>
                <goal>migrate</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <url>jdbc:h2:${project.build.directory}/database/db</url>
        <user>sa</user>
        <password></password>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <version>${h2.version}</version>
        </dependency>
    </dependencies>
</plugin>

Flyway führt bestimmte SQL Skripte auf der festgelegten Datenbank für uns automatisch aus. Es erwartet dabei die auszuführenden Skripte an einer ganz bestimmten Stelle, nämlich im Ordner db/migration/ im classpath:

01 flyway structure

Für die Bezeichnung der Dateien muss man sich an eine etwas gewöhnungsbedürftige Namenskonvention halten.

Für unser erstes Beispiel legen wir eine Tabelle CUSTOMER an, und fügen einen Datensatz ein:

Datenbankmigration
CREATE TABLE CUSTOMER (
  ID        BIGINT NOT NULL,
  FIRSTNAME VARCHAR(255),
  LASTNAME  VARCHAR(255)
);

ALTER TABLE CUSTOMER
  ADD CONSTRAINT CUSTOMER_PK PRIMARY KEY (ID);

INSERT INTO CUSTOMER VALUES (1, 'Buck', 'Rogers');

Die einzelnen Schritte findet Ihr nochmal im Screencast: