2014-07-04 11 views
6

Sollte ich AR-Migrationen erstellen, wenn ich meine Modelle ändere? Ich verwende Mongoid und MongoDB, damit ich keine Vorteile sehe. Der einzige Vorteil, den ich mir vorstellen kann, ist ein Feld umzubenennen - aber das kann ich auch mit kleinem Skript machen. Würde das überhaupt funktionieren? Mein Bauchgefühl sagt mir, dass ich keine Migrationen brauche, aber ich würde gerne von jemandem mit mehr Erfahrung hören.Macht die Verwendung von Migrationen mit Rails/Mongoid/MongoDB Sinn?

Was ist die beste Praxis? Sollte ich Migrationen mit MongoDB verwenden?

+2

Sie haben noch ned Migrationen wie ich mit Yii in PHP gelernt habe, viele Leute haben immer noch Szenarien für die Verwendung von Migrationsfragen mit MongoDB, musste es zu meiner MongoDB hinzufügen Yii ext – Sammaye

+0

@Sammaye Was sind diese Szenarien? – xx77aBs

+2

Ein Szenario war mit der Standardisierung, das Problem mit Sachen in der Anwendung zu tun, dies ist, dass Sie fehlerhaften und schmutzigen Code bekommen. Wenn Sie es in der Datenbank tun, löst es dieses Problem. Ein anderes ist, wenn Sie sich entscheiden, Features in Yii zu ändern. In den Yii Foren gab es noch eine weitere, die mich dazu brachte, meine Meinung zu ändern, aber ich kann mich jetzt nicht mehr daran erinnern – Sammaye

Antwort

8

Da MongoDB nicht (wie bei 2.6) bietet jede serverseitige Schema Durchsetzung werden Skripte Migrationsdaten nicht unbedingt erforderlich. Dies kann besonders hilfreich für die Geschwindigkeit der Entwicklung sein.

Es kann jedoch immer noch sinnvoll sein, Migrationen für Ihre Produktionsdaten zu erstellen, wenn Sie eine gute "Datenhygiene" üben und Konsistenz zwischen verschiedenen Bereitstellungen sicherstellen möchten.

Zum Beispiel:

  • Entfernen nicht verwendete Felder
  • Hinzufügen neuer Pflichtfelder
  • Einstellung Standardwerte
  • Umbenennung Felder
  • Laden erforderlichen Daten/Einrichtung
  • Sicherstellung erforderlich Indizes

Sie haben sicherlich die Wahl einen der oben als Einmal Skripte oder beim Umgang mit Ausnahmefällen im Anwendungscode zu tun. Beispielsweise können Sie fehlende Felder oder Standardwerte problemlos hinzufügen, wenn Dokumente zur Bearbeitung aus der Datenbank geladen werden.

Für Mongoid insbesondere können Sie die mongoid_rails_migrations Juwel versuchen.

1

Mongo DB Dokumente sind schema weniger deshalb Migrationen sind nicht erforderlich. Sie können nur Felder in Ihrer mongoid Modelle wie definieren:

field :name, type: String

die mongoid documentation prüfen unterstützten Felder.

Verwandte Themen