2014-04-12 17 views
5

Obwohl ich Ausgabe https://github.com/spring-projects/spring-boot/issues/662 aufgeworfen, um ein Spring-Boot-Starter-Liquibase-Starter-Modul zu bieten, heute habe ich herausgefunden, dass es bereits eine Art von Integration gibt.Spring-Boot-Liquibase-Integration

Spring Boot enthält bereits https://github.com/spring-projects/spring-boot/tree/master/spring-boot/src/main/java/org/springframework/boot/liquibase mit einem speziellen Service Locator für Spring Boot Liquibase. Aus diesem Code und dem Spring-Boot-Referenzhandbuch kann ich nicht herausfinden, was Spring Boot bereits bietet.

Ich habe aber auch herausgefunden, dass beim Hinzufügen der Gradle-Abhängigkeit "org.liquibase: liquibase-core" (Anmerkung ohne Versionsnummer) automatisch liquibase 3.1.1 auflöst, so dass der Spring-Boot-spezifische Abhängigkeits-Resolver hier 'Magie' macht .

Wer weiß, welche Art von Integration Spring Boot in Bezug auf Liquibase bietet? Ich möchte automatisch Migrationen (falls erforderlich) während des Starts der Anwendung durchführen.

Antwort

6

Spring Boot kennt Liquibase und erkennt es auf dem Klassenpfad (daher die magische Abhängigkeitsauflösung). Liquibase verfügt über einen SPI zum Erstellen seiner Dienste, die wir auf besondere Weise implementieren, damit sie mit dem von Spring Boot unterstützten ausführbaren JAR-Format arbeiten können. Also, kurz gesagt, wenn es da ist und Sie es zu Ihrem Kontext hinzufügen, wird es funktionieren (wie kurz in the docs erwähnt). Aber es gibt keine "automatische Konfiguration" out-of-the-box (wir können Ihre github Problem zu verwalten, wenn Sie eine neue Funktion möchten).

+0

Danke für Erklärung Dave. Momentan ist Spring Boot nichts besonderes, das automatisch ausgeführt wird, um Migrationen auszuführen. Lassen Sie uns Feature-Anfrage im erwähnten Guthub-Problem weiter diskutieren. –

+0

Ich habe gelesen, Sie sind Diskussionen (und die Dokumente), aber ich habe ein Problem, ich habe Liquibase-Kern als eine Abhängigkeit im Klassenpfad gesetzt, ich habe einen Pfad zu einer Datei in den Ressourceneigenschaften der liquibase.change zugewiesen -log Variable, aber wenn ich meine Springboot-Anwendung ausführen, nichts in der Datenbank ändern, wie könnte es möglich sein? – mautrok