2010-01-20 5 views
11

Es gibt mindestens zwei Grails-Plugins, die die Datenbankmigration Funktionalität von Rails emulieren:Grails Datenbankmigration Plugins

Gibt es einen Konsens darüber, welche von ihnen ist am besten Oder gibt es ein anderes Plugin, das die Datenbankmigration besser als eines der oben genannten unterstützt?

Antwort

13

Es ist jetzt ein standard Grails database migration plugin verfügbar. Gemäss this blog post wird zumindest das liquibase-Plugin nicht mehr über die liquibase 1.9-Version hinaus gepflegt.

Das neue Datenbankmigrations-Plugin hat built-in functionality, um Changelogs beim Start auszuführen und unterstützt die Definition von Änderungen in Groovy DSL, also ist es wahrscheinlich das, wonach Sie suchen.

3

Ich benutze Autobase (die auf Liquibase aufgebaut ist), da es (das letzte Mal, wenn ich es überprüfte) Ihnen erlaubt, Ihre Migrationen automatisch zu überprüfen/anzuwenden, wenn die App startet. Mit dem Liquibase-Plugin muss ich das selbst im Servlet-Init-Code machen. Auf diese Weise können Sie Ihre Datenquelle auf dbCreate = none einstellen und Autobase die DB in Form bringen lassen. Es bedeutet bedeutet, dass Sie jedes Mal eine Migration schreiben müssen, wenn Sie einer Domain-Klasse eine Eigenschaft hinzufügen, aber ich denke, das ist eine gute Sache, wie Sie darüber nachdenken, was das zugrunde liegende Feld eigentlich sein sollte Lassen Sie Hibernate es erraten.

Ich denke, einige der Autobase-Plugin (z. B. die groovy dsl) wird zurück auf das Liquibase-Plugin migriert, aber Sie müssten das überprüfen.

Der einzige Nachteil von Autobase ist der Mangel an guter Dokumentation. Es gibt einige, aber es ist nicht vollständig. Zum Glück ist die DSL die gleiche wie die XML-Liquibase-Tags, so dass Sie das meiste davon arbeiten können.

+0

nur auf der Autobase Seite - es ist jetzt veraltet zugunsten von Liquibase –

+1

Ich glaube nicht, Liquibase hat die Möglichkeit, die DB zu aktualisieren, wenn Ihre App startet, die eine wirklich gute Funktion ist .Ich würde immer noch Autobase verwenden, bis Migrationen Teil des Grails-Kerns sind (was für Grails 1.4 geplant ist). – leebutts

+0

@leebutts - Zum jetzigen Zeitpunkt unterstützt das dbMigrations-Plugin (der Nachfolger des Liquibase-Plugins) das Aktualisieren der Datenbank beim Start der Anwendung. – cdeszaq

1

Ich benutze Liquibase, ich bin mir nicht sicher, ob Robert immer noch aktiv Autobase und die XML, die Liquibase bietet, ist eigentlich ziemlich DSL-like. Ich denke, es gibt auch ein wenig Trennung zu Ihren Datenbankbefehlen und macht es nicht in den Startprozess eingegraben (manche Leute bevorzugen vielleicht das Gegenteil).

0

Ich habe gehört, dass Autobase immer noch gepflegt wird, aber bedenken Sie, dass das Grails Database Migration Plugin vom Kernteam geschrieben wird und wahrscheinlich das offiziell unterstützte sein wird.

In anderen Worten, ermutigen Sie können auf Grails 1.4 warten ->roadmap vor der Auswahl eines der oben genannten Plugins.

1

Mindestens wie von Grails2.0 ist die database migration plugin die defacto Möglichkeit, nicht-triviale Datenbankänderungen zu behandeln. Das Plugin basiert auf Liquibase und wurde von den Quellen von Springsource entwickelt - immer ein Qualitätsmerkmal. Ich schrieb eine introduction to the database migration plugin, die für jemanden nützlich sein könnte, der das liest.

Verwandte Themen