Wie der Titel sagt, möchte ich Liquibase verwenden, um ein Changelog für eine leere Datenbank im Offline-Modus zu generieren. Meine ant-Datei sieht wie folgt aus:Erstellen eines Changelogs für eine leere Datenbank mit Liquibase im Offline-Modus
<project xmlns:liquibase="antlib:liquibase.integration.ant">
<taskdef resource="liquibase/integration/ant/antlib.xml" uri="antlib:liquibase.integration.ant">
<classpath>
<pathelement location="antlibs/liquibase-core-3.5.3.jar" />
<pathelement location="antlibs/snakeyaml-1.18.jar" />
</classpath>
</taskdef>
<target name="generate-changelog">
<liquibase:generateChangeLog>
<liquibase:database url="offline:postgresql?snapshot=snapshot.json" />
<liquibase:xml outputfile="target/changelog.xml" encoding="UTF-8" />
</liquibase:generateChangeLog>
</target>
Später möchte ich Liquibase-Hibernate4 zu erzeugen, das Changelog von meinem Wesen, aber ich begegnen verschiedene Fragen vorher hinzuzufügen. Wenn ich einfach die URL "offline: postgresql" verwende, stürzt die ant-Task mit einer NullPointerException ab, da Liquibase versucht hat, den Snapshot zu klonen, der nicht verfügbar ist. Wenn ich "? Snapshot = snapshot.json" hinzufüge, kann Liquibase (oder Yaml) meine Datei nicht finden.
Meine Fragen:
- Ist das der richtige Ansatz, wenn ich einfach das Changelog für meine Entitäten ohne Basis Snapshot überhaupt erstellen?
- Gibt es eine einfachere Möglichkeit, Liquibase mit einer leeren Datenbank als Basis zu versorgen?
- Wie füge ich snapshot.json dem Projekt hinzu, um sicherzustellen, dass die ant-Task es finden kann?