2017-11-09 1 views
0

Ich habe eine funktionierende Jhipster-Anwendung, die mit einer MySQL-Datenbank verknüpft ist.
Ich möchte eine neue Anwendung erstellen, die ich mit der ersten Anwendungsdatenbank verbinden würde.Jhipster - Verbinden von zwei Anwendungen zu einer Datenbank

Ist es möglich? in Bezug auf Liquibase/Entitäten/etc.

+0

Ist Ihre Frage zu Jhipster oder Liquibase? Haben Sie versucht, was sind Ihre spezifischen Anliegen? Im Allgemeinen ja, Anwendungen können eine Datenbank teilen, müssen aber koordiniert werden, um in Zusammenarbeit zu arbeiten. Liquibase bietet einen Sperrmechanismus, der dies unterstützt, so dass viele Instanzen eine Verbindung herstellen können und nur 1 ändert. – Eddie

+0

geht es darum, wie jhipster die Anwendung konfiguriert. Ich nehme an, dass gemeinsame Anwendungsentitäten in den beiden Anwendungen genau gleich sein müssen? – thomas

Antwort

4

Warum sollte das nicht möglich sein? MySQL selbst ist ein Mehrbenutzer-DBMS, sodass es mehrere Verbindungen verarbeiten kann.

Das einzige Problem wäre Liquibase, weil es prüft, ob Ihre Datenbank gegen Ihre Changelogs gültig ist. Wenn Ihre zweite App also auch liquibase verwendet und nicht die gleichen Änderungsprotokolle mit derselben Prüfsumme hat, wird sie nicht gestartet. Deine zweite App sollte also keine liquibase verwenden und du solltest das liquibase-Zeug aus der zweiten App entfernen. Das bedeutet: Die erste App ist verantwortlich für das Erstellen/Aktualisieren des Schemas mit Liquibase und die zweite App verwendet nur das gleiche Schema.

Und du hast Recht: die Einheiten müssen gleich sein, weil Hibernate/JPA die gleiche Spalte und Entity/Tabellennamen übernimmt (die von der Datenbank angegeben werden) ...

Meiner Meinung nach ist ein Ein besserer Ansatz wäre der Microservice-Weg: Die erste Anwendung ist die einzige, die direkt auf die Datenbank zugreift und über REST einige Schnittstellen für die Entitäten bietet. Dann verwendet Ihre zweite Anwendung einfach die Schnittstelle über einen REST-Client. Dadurch können Sie auch andere/geänderte Entitäten über den REST-Service definieren und Ihre zweite App kann nicht genau so wie in der ersten Anwendung verwendet werden.

+0

Dies ist die richtige Antwort: Verwenden Sie SOA/Micro-Services. Sie werden Probleme mit dem Ruhezustand-Cache bekommen, wenn Sie die Datenbank ändern, ohne sie zu durchlaufen. Wie bei Liquibase, entfernen Sie keinen Code: Verwenden Sie das 'no-liquibase' Profil, um es zu deaktivieren. –

Verwandte Themen