Spring Boot und Hibernate: DDL drucken / protokollieren

8

Nachdem ich eine oder mehrere Klassen mit Datenbankzuordnungen (JPA / Hibernate) hinzugefügt habe, möchte ich, dass Hibernate die erforderlichen Schemaaktualisierungen druckt, damit ich sie in der Datenbank ausführen kann (z. B. über FlyWay). Ich möchte nicht, dass die Updates automatisch ausgeführt werden.

Die einzige Eigenschaft, die etwas Kontrolle darüber zu geben scheint, ist die folgende

%Vor%

Ich möchte nichts automatisch aktualisieren / ändern. Ich möchte dies auf validate oder none setzen. Wenn ich das mache, kann ich das generierte Schema nicht sehen.

Ich klassische Feder-Anwendung, habe ich die Hibernate SchemaExport -Klasse verwendet, um die DDL zu drucken.

%Vor%

Gibt es etwas Ähnliches, das ich in Spring Boot verwenden kann?

    
bertvh 30.07.2014, 22:44
quelle

2 Antworten

10

Das mache ich ...

Zuerst mache ich meine Entity-Änderungen, dann setze ich diese auf:

%Vor%

Dann

  1. führe meine App erneut aus und lasse Hibernate die Änderungen an der Datenbank vornehmen.
  2. Gehen Sie in die Protokolle und kopieren Sie den sql, der den Ruhezustand verwendet, um die db
  3. zu aktualisieren
  4. Fügen Sie diese sql in ein neues Flyway-Skript ein
  5. Shudown Boot App
  6. Löschen Sie die lokale Datenbank
  7. Ändern Sie ddl-auto zurück, um zu validieren
  8. Neustart der Boot-App
  9. Testen Sie, ob Flyway die richtigen Updates vorgenommen hat. Hibernate und Flyway sind jetzt synchronisiert.
Chris Savory 01.08.2014 17:33
quelle
0

Die Lösung, die show-sql zu setzen, funktionierte bei mir nicht, obwohl Debugging aktiviert war. Also schrieb ich diese einfache Klasse und führte sie aus.

%Vor%

Wenn ich es ausführe, kann ich die DDL in der Konsole sehen und weitermachen, wie Chris es vorgeschlagen hat

    
user2858970 14.06.2016 12:11
quelle