Welches ORM wird am besten mit einer neuen Rails 3-App für eine ältere MySQL 5.1-Datenbank verwendet? Ich erwarte nicht, jemals eine Migration gegen diese Datenbank durchzuführen (obwohl sich das Schema von Zeit zu Zeit ändern kann), aber ich werde sicherlich daran schreiben.Rails 3: ActiveRecord vs. DataMapper (vs. ???) für ältere MySQL-Datenbanken
Antwort
Ich bin vielleicht voreingenommen gegenüber DataMapper, aber ich denke, DM ist im Allgemeinen eine gute Option für die Integration in ältere Datenbanken.
DM ermöglicht es Ihnen sinnvolle Modell und Eigenschaftsnamen zu kryptischen Vermächtnis Tabellen- und Spaltennamenskonventionen abzubilden. Sie können dies entweder auf einem pro Modell/Eigentum oder einer App breiten Basis tun.
DM unterstützt faule Eigenschaften, die nur beim tatsächlichen Zugriff abgerufen werden.
DM unterstützt nahtlos zusammengesetzte Primärschlüssel.
DM kümmert sich nur um die Eigenschaften (Spalten), die Sie explizit in Ihren Modellen deklarieren. Andere Spalten werden niemals berührt oder gelesen.
DM funktioniert gut mit Fremdschlüssel Einschränkungen in Ihrer Datenbank und mit Hilfe von dm-constraints unterstützt es auch die Erstellung von ihnen.
Es gibt einige Dokumentation auf http://datamapper.org/docs/legacy auch.
Es gibt auch die dm-types-legacy-Bibliothek (https://github.com/postmodern/dm-types-legacy), die gängige DM-Typen für die Zuordnung in seltsam formatierten Daten (Numerische IP-Adressen, HTML/URI) bietet kodierter Text, Datums-/Uhrzeitzeichenfolgen).
Funktioniert das mit datetime_select? Ich versuche beispielsweise, ein Datetime-Feld zu aktualisieren, und es schlägt daher fehl: "published_at (1i)" => "2010", "published_at (2i)" => "11", "published_at (3i)" => "14", "published_at (4i)" => "07", "published_at (5i)" => "59" –
Können Sie ein wenig vom Schema teilen? – rwilliams
Entschuldigung, es ist das geistige Eigentum eines Kunden, also kann ich es nicht teilen. –