Meine Antwort ist vielleicht nicht so lang wie die von Remus, aber ich fand, dass dies eine wirklich gute Lösung ist. Ich habe es noch nicht in der Produktion eingerichtet, also YMMV *.
Liquibase
Im Wesentlichen handelt es sich um eine XML-Datei, in der Sie Schemaänderungen an Ihrer Datenbank als neue Elemente in der XML-Datei vornehmen. Beispielsweise:
<createTable tableName="department">
<column name="id" type="int">
<constraints primaryKey="true" nullable="false"/>
</column>
Die Syntax ist vollständig ausgearbeitet, sodass Sie so ziemlich alles tun können, was Sie möchten.
Sie geben in Ihrer Liquibase-Installation auch an, welche Datenbank versioniert werden soll. Anschließend führen Sie die XML-Datei mit der enthaltenen ausführbaren Java-Datei (JAR-Datei) aus. Dadurch werden im Wesentlichen die in der XML angegebenen Änderungen an Ihrer Datenbank neu erstellt.
Der eigentliche Kicker ist, dass Sie diese XML-Datei im selben versionierten Ordner wie Ihren Code speichern. In meinem Fall war das also Git. Ich hatte diese XML-Datei in meinem Projektordner (dieselbe Ebene wie /.git) und wenn ich dann die Verzweigung wechselte, änderte sich die XML-Datei in diese Verzweigungsversion und ich führte die JAR-Datei aus und meine Datenbank spiegelte nun diese Verzweigung wider.
* Hinweis: Ich habe die Implementierung noch nicht abgeschlossen, da ich Probleme hatte, Java mit SQL Server zu verbinden. Benötigt einige JDBC-Treiber und so und ich war nicht in der Stimmung. Daher kann Ihr Kilometerstand variieren.