webentwicklung-frage-antwort-db.com.de

Wie kann man mit Jhipster erzeugte vorhandene Entitäten ändern?

Ich verwende den Jhipster-Generator, um ein Projekt zu erstellen. Ich habe eine Entität manuell erstellt, indem ich die Informationen in der jhipster-Dokumentation befolge: 

Wenn Sie eine Datenbankaktualisierung lieber manuell durchführen möchten (oder benötigen), finden Sie hier den Entwicklungsworkflow: Ändern Sie Ihre JPA-Entität (fügen Sie ein Feld, eine Beziehung usw. hinzu). Erstellen Sie ein neues "Änderungsprotokoll" in Ihrem Verzeichnis src/main/resources/config/liquibase/changelog. Die Dateien in Diesem Verzeichnis wird das Erstellungsdatum vorangestellt (im Format JJJJJMMddHHmmss ). Anschließend wird ein Titel mit der Beschreibung der Funktionen angegeben. Zum Beispiel, 20141006152300_added_price_to_product.xml ist ein guter Name. Füge das hinzu "Änderungsprotokoll" -Datei in Ihrer src/main/resources/config/liquibase/master.xml -Datei, so dass sie angewendet wird das nächste Mal, wenn Sie Ihre Anwendung ausführen, wenn Sie weitere Informationen zu .__ wünschen. Wenn Sie Liquibase verwenden, gehen Sie bitte zu http://www.liquibase.org .

In der Dokumentation wird nur erwähnt, wie hinzugefügt wird !!! Was muss ich tun, wenn ich ein Feld oder eine Beziehung zwischen Entitäten löschen möchte (jpa-Entität)? 

Vielen Dank

34
Pracede

1) Bearbeiten Sie die json-Datei, die Ihre Entität darstellt (Feld hinzufügen/entfernen, die Syntax ist ziemlich einfach. Überprüfen Sie das Ende der Datei, ob Änderungen an den allgemeinen Entitätseigenschaften wie 'fieldsContainOneToMany' ...) erforderlich sind finde es in:

<jhipster_root_folder>/.jhipster/entityName.json

2) Erstellen Sie den Code.

3) Führen Sie im Stammverzeichnis Ihres Projekts den Befehl aus:

yo jhipster:entity entityName

HINWEIS: Dieser Befehl überschreibt standardmäßig alle Ihre manuellen Änderungen. Ich empfehle, vor dem Ausführen dieses Befehls ein Commit für ein VCS-Repository durchzuführen, um eventuell nicht erforderliche Änderungen rückgängig zu machen.

4) laufen 

mvn liquibase:diff
49
Roberto

Ich habe Lösung für jhipster 3.4.2 gearbeitet, es ist das Ergebnis von mir an einem Tag, ich hoffe es ist hilfreich für dich :)

  1. yo jhipster:entity entityName ausführen
  2. Entitäten ändern (hinzufügen, entfernen, ...). Am Ende gibt jhipster eine Frage zum Überschreiben der Datei * WICHTIGER HINWEIS: Wählen Sie NO für changelog .xml-Datei und navbar.html-Datei.
  3. Zurück zum Projekt und Ausführen von mvn compile liquibase:diff
  4. Führen Sie Ihre Anwendung aus
  5. ERLEDIGT
24
ThanhLD

Auf derselben Seite können Sie diesen Satz sehen:

Wenn Sie sich für die Entwicklung von MySQL oder Postgresql entschieden haben, können Sie mit dem Ziel mvn liquibase: diff automatisch ein Änderungsprotokoll erstellen.

Liquibase Hibernate ist ein Maven-Plugin, das in Ihrer pom.xml-Datei konfiguriert ist und von Ihrer Spring-Datei application.yml unabhängig ist. Wenn Sie also die Standardeinstellungen geändert haben (z. B. das Datenbankkennwort geändert), müssen Sie beide Dateien ändern .

Hier ist der Entwicklungsworkflow:

Ändern Sie Ihre JPA-Entität (fügen Sie ein Feld, eine Beziehung usw. hinzu) Kompilieren Sie Ihre Anwendung (dies funktioniert mit dem kompilierten Java-Code, vergessen Sie nicht zu kompilieren!) Führen Sie mvn liquibase: diff aus (oder mvn compile liquibase: vorher zu kompilieren) Ein neues "Änderungsprotokoll" wird in Ihrem Verzeichnis src/main/resources/config/liquibase/changelog erstellt Überprüfen Sie dieses Änderungsprotokoll, und fügen Sie es der Datei src/main/resources/config/liquibase/master.xml hinzu. Es wird also beim nächsten Ausführen der Anwendung angewendet. Wenn Sie Gradle anstelle von Maven verwenden, können Sie denselben Workflow verwenden, indem Sie ./gradlew liquibaseDiffChangelog ausführen und bei Bedarf die Datenbankkonfiguration in liquibase.gradle ändern.

Sie müssen also nur Ihre JPA-Entitäten ändern (Remove, Add usw.), run mvn liquibase: diff kompilieren und die Änderungen in master.xml eingeben.

6
brevleq

Sie können auch vorhandene Objekte ändern interaktiv, z. Verwenden von yo jhipster:entity Foo für Entität Foo.

Auf diese Weise können Sie alle Objekte und Dialoge neu generieren.

Wenn Sie ein RDBMS und eine Liquibase verwenden, müssen Sie die Changelog-Datei (en) schreiben und der master.xml hinzufügen. Was hier hilft, ist die Verwendung von mvn liquibase:diff oder gradlew liquibaseDiff, die Sie für Ihre vorhandene Datenbank ausführen können. Ich würde jedoch empfehlen, die Changelog-Dateien manuell zu schreiben.

6
Jörg

Für jhipster 5.7.0 können Sie den Entity-Befehl erneut ausführen. Sie werden gefragt, ob Sie ihn ändern möchten. 

 % jhipster entity device                                 
INFO! Using JHipster version installed locally in current project's node_modules
INFO! Executing jhipster:entity device
INFO! Options: from-cli: true

Found the .jhipster/Device.json configuration file, entity can be automatically generated!


The entity device is being updated.

? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten 
  Yes, re generate the entity 
❯ Yes, add more fields and relationships 
  Yes, remove fields and relationships 
  No, exit
1
Martin Naughton

Was ich getan habe, um die Jhipster-Entity wie eine Beziehung zu ändern, um neue Tabellen hinzuzufügen, war:

  1. (Projekt speichern, bevor etwas passiert: p) yo jhipster: Entität TableToEdit und Editieren, was immer Sie möchten . Wer kann editTableOrAdd
  2. Fügen Sie dann die neuen Tabellen hinzu (optional).
  3. Ich musste dann einfach alle Tabellen der Datenbank ändern oder entfernen, um die neuen Felder und Beziehungen im SQL-Teil automatisch zu generieren.

Hinweis: Wenn nach diesen Schritten ein Fehler aufgetreten ist, serverError oder etwas, das ich de Entity regeneriere, dann Entity . Wenn Sie alle Ihre Daten behalten möchten, ist dies natürlich keine gute Alternative.

0
Daniel Alves