Zeit für RDBMS-Gehirnwäsche. :)
Einer der wichtigsten Punkte des schemaless-Designs von couchdb zielt direkt darauf ab, die Notwendigkeit von Migrationen zu verhindern. Die JSON-Darstellung von Objekten macht es einfach, Ihre Objekte einfach zu ducken.
Zum Beispiel, da Sie eine Blog-Art Web-App mit Posts und was auch immer fancy Dinge haben Menschen in einem Blog speichern. Ihre Post-Dokumente haben Felder wie Autor, Titel, erstellt, usw. Jetzt kommen Sie und denken Sie an sich selbst, "Ich sollte verfolgen, in welcher Phase der Mond ist, wenn ich meine Posts veröffentlichen ..." Sie können einfach beginnen, moon_phase als hinzuzufügen ein Attribut für neue Posts.
Wenn Sie vollständig sein möchten, würden Sie zurückkehren und moon_phase zu alten Posts hinzufügen, aber das ist nicht unbedingt notwendig.
In Ihren Ansichten können Sie auf moon_phase als Attribut zugreifen. Und es wird null oder eine Ausnahme oder etwas verursachen. (Kein JS-Experte, ich denke, null ist die richtige Antwort)
Die Sache ist, es ist nicht wirklich wichtig. Wenn Sie etwas verändern möchten, ändern Sie es einfach. Stellen Sie jedoch sicher, dass Ihre Ansichten diese Änderung verstehen. Was meiner Erfahrung nach nicht viel verlangt.
Auch, wenn Sie wirklich paranoid sind, könnten speichern Sie eine Version/type-Attribut, wie in:
{
_id: "foo-post",
_rev: "23490AD",
type: "post",
typevers: 0,
moon_phase: "full"
}
Hoffnung, das hilft.
Sieht aus wie activcouch ist jetzt auf GitHub - http://github.com/arunthampi/activecouch/tree/master – Evan