Frage

Ich bin für eine allgemeine Lösung für Datenbankschema mit ORM-Tool aktualisieren, wie JPOX oder Ruhezustand. Wie tun Sie es in Ihren Projekten?

Die erste Lösung, die mir in den Sinn kommt, ist meine eigenen Mechanismus für die Aktualisierung von Datenbanken zu erstellen, mit SQL-Skripten die ganze Arbeit zu tun. Aber in diesem Fall werde ich über das Erstellen neuer Skripte jedes Mal die Objektzuordnungen aktualisiert werden erinnern. Und ich werde immer noch mit Low-Level-SQL-Abfragen zu tun haben, anstatt nur Mappings definieren und damit die ORM-Tools alle um den Job zu tun ...

Die Frage ist also, wie man es richtig zu machen. Vielleicht ist einige Tools ermöglichen, diese Aufgabe zu vereinfachen (zB ich hörte, dass Rails solchen Mechanismus eingebaut hat), wenn ja bitte mir, welches ORM-Tool helfen entscheiden, für mein nächstes Java-Projekt zu wählen.

War es hilfreich?

Lösung

Liquibase ist eine interessante Open-Source-Bibliothek für den Umgang mit Datenbank Refactorings (Upgrades). Ich habe es nicht benutzt, aber es wird auf jeden Fall einen Versuch auf mein nächstes Projekt geben, wo ich ein DB-Schema aktualisieren müssen.

Andere Tipps

Ich sehe nicht, warum ORM erzeugten Schemata anders zu anderen DB-Schemata sind - das Problem ist das gleiche. Angenommen, Ihre ORM wird eine Generation Skript ausspucken, können Sie ein externes Tool verwenden, um die diff zu tun

Ich habe es nicht ausprobiert, aber Google kam mit SQLCompare als eine Option - ich bin sicher, es gibt andere,

.

Wir übergeben SQL-Code-Update-Skripte und wir reißen das Schema unten und bauen sie den Update-Skripte als Teil unseres kontinuierlichen Build-Prozesses anwenden. Wenn irgendwelche Hibernate Mappings nicht mit dem Schema übereinstimmen, wird der Build fehlschlagen.

DbMaintain können hier helfen.

Sie dies, Funktionsvergleich einiger Datenbank-Schema-Upgrade-Tools.

Ein Vergleich der Anzahl der Fragen in SOW einiger dieser Werkzeuge:

Ich denke, Ihre beste Wette ist ein ORM-Tool zu verwenden, die Datenbankmigration wie SubSonic :

http://subsonicproject.com/2-1-pakala/ Unterschall-using-Migrationen /

Am Ende haben wir Update-Skripte jedes Mal machen wir die Datenbank geändert. So gibt es einen Skript von Version 10 bis 11, 11 bis 12, etc .. Dann können wir jede aufeinander folgende Reihe von Skripten ausgeführt von einer bestehenden Version auf die neue Version zu überspringen. Wir gespeichert die vorhandene Version in der Datenbank, so dass wir dies beim Start erkennen konnten.

Ja, um diesen beteiligten Datenbank-spezifische Code! Eines der Hauptprobleme bei Hibernate!

Wenn Sie mit Hibernate arbeiten, verwende ich eine Installer-Klasse, die von der Kommandozeile ausgeführt und verfügt über Optionen für die Erstellung von Datenbankschema, Basisdaten einfügen und dynamisch das Datenbankschema aktualisieren mit SchemaUpdate . Ich finde es sehr nützlich sein. Es gibt mir auch einen Platz Einmal Skripte zu setzen, die ausgeführt werden, wenn eine neue Version zum Beispiel, gestartet wird, ein neues Feld in einer bestehenden DB-Tabelle füllen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top