2010-12-01 6 views
0

Gibt es ein Versions-Plugin für Rails 3-Modelle, das Punkt-in-Zeit-Abfragen (nicht nur Wiederherstellung) in einer SQL-Datenbank unterstützt?Rails-Versionierung mit Point-in-Time-Abfrage

Um konkret zu sein: Ich habe einen Tisch, Dokumente. Ich möchte sagen können: "Seit dem 17.09.2010, welche Dokumente enthielten den Text 'foo'?". Diese Anforderung scheint alle Single-Table-Versionierungslösungen wie vestal_versions auszuschließen, und keines der anderen scheint diese Funktion zu besitzen. Alle Plugins, die ich angeschaut habe, sind als Black Boxes dokumentiert. Vielleicht speichern sie intern genug Daten, um diese Art von Abfragen durchzuführen, aber Sie würden es nie aus den Dokumenten erfahren. In Bezug auf die sich langsam verändernden Dimensionen ist Typ 2 wahrscheinlich die Art von Lösung, nach der ich suche, obwohl ich letztendlich verwenden werde, was auch immer funktioniert.

Ich muss auch verfolgen, welcher Benutzer Änderungen vorgenommen hat, obwohl das wahrscheinlich auch außerhalb des Versionierungssystems möglich ist.

Gibt es eine, die ich vermisse? Oder verwende ich den falschen Suchbegriff? Oder kann ich meine eigenen rollen lassen?

Antwort

0

Ich denke, Sie können Ihre eigenen rollen. Wenn Sie in der Lage sein müssen, Abfragen für die Versionen durchzuführen, sollten die Versionen wahrscheinlich ihr eigenes Modell sein, und die Erstellung eines Versionierungs-Features, das sich Ihren Anforderungen anpasst, wird schmerzhafter sein, als wenn Sie es selbst tun.

Sorry, und Spaß haben:/

+0

https://github.com/chrispatterson/Lowdown/tree/master/vendor/plugins/point_in_time Falls jemand muss es anders. – novalis

+0

@novalis: wow, netter Fund, tief versteckt :) – Matchu

+0

Eigentlich war das kein Fund - das war ich selbst rollen :) – novalis