Projekt: EasyMigrate

Jd-EasyMigrate ist ein Projekt um Datenbankänderungen zu versionieren. Es kann neue Versionen anwenden, und wieder zurückrollen. Es ist größtenteils funktionskompatibel mit Flyway. Aktuell ist es mit PostgreSQL getestet.

Der Auslöser der Implementation war die Erkenntnis und Detailwissen der Lizenzpolitik von Flyway.

Die Bibliothek bietet wie Flyway die Möglichkeit Sql-Skripte zur Versionierung der Datenbank und Datenbankstruktur zu verwenden. Fehlerhafte Migrationen werden zurückgerollt, man kann einzelne Migrationen rückgängig machen. Es bietet mehr Statistik-Informationen als Flyway.

Weil die Motivation der Implementierung Eigenbedarf war, wurde bisher auch nur mit Datenbanken getestet, die selbst verwendet werden, das ist aktuell nur PostgreSQL.

Es arbeitet nur als natives Kommandozeilentool. Es kann aber problemlos in Maven eingebunden werden, indem ein executor-plugin benutzt wird.

maven pom.xml:

300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
    <build>
      <plugins>
            <plugin>
                <artifactId>exec-maven-plugin</artifactId>
                <groupId>org.codehaus.mojo</groupId>
                <version>3.1.0</version>
                <executions>
                    <execution>
                        <id>easy-migrate</id>
                        <!--  mvn-buildphase in der das plugin ausgeführt werden soll-->
                        <phase>initialize</phase>
                        <goals>
                            <goal>exec</goal>
                        </goals>
                        <configuration>
                            <executable>bin/jd-easymigrate</executable>
                            <commandlineArgs>info</commandlineArgs>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
      </plugins>
    </build>

Ein Screenshot einer beispielhaften Migrationstabelle ist hier zu sehen; sie entspricht zu einem großen Teil den Flyway MetaInfos.

EasyMigrate - MigrationsTabelle

EasyMigrate - MigrationsTabelle