2010-11-13 7 views
5

¿Qué ORM es mejor usar con una nueva aplicación Rails 3 contra una base de datos heredada de MySQL 5.1? No espero ejecutar una migración contra esta base de datos (aunque el esquema puede cambiar de vez en cuando), pero sin duda le escribiré.Rails 3: ActiveRecord vs. DataMapper (frente a ???) para las bases de datos MySQL heredadas

+0

¿Puedes compartir un poco del esquema? – rwilliams

+0

Lo siento, es propiedad intelectual de un cliente, por lo que no puedo compartirlo. –

Respuesta

12

Puede que esté predispuesto hacia DataMapper, pero creo que DM es generalmente una buena opción para integrarse con bases de datos heredadas.

  • DM le permite mapear modelo y de propiedad nombres significativos a la herencia convenciones tabla y la columna de nombres crípticos. Le permite hacerlo en un por modelo/propiedad, o en una amplia aplicación.

  • DM admite propiedades diferidas, que solo se recuperarán cuando se acceda a ellas.

  • DM tiene soporte sin interrupciones para teclas primarias compuestas.

  • DM solo se preocupa por las propiedades (columnas) que explícitamente declara en sus modelos. Otras columnas nunca serán tocadas o leídas.

  • DM funciona bien con restricciones de clave externa en su base de datos y con la ayuda de dm-constraints también es compatible con su creación.

También hay documentación sobre http://datamapper.org/docs/legacy.

5

También existe la biblioteca dm-types-legacy (https://github.com/postmodern/dm-types-legacy) que proporciona tipos de DM comunes para mapear en datos extrañamente formateados (direcciones IP numéricas, HTML/URI texto codificado, cadenas de fecha/hora).

+1

¿Funciona algo de esto con datetime_select? Por ejemplo, estoy intentando actualizar un campo de fecha y hora y falla debido a esto: "published_at (1i)" => "2010", "published_at (2i)" => "11", "published_at (3i)" => "14", "published_at (4i)" => "07", "published_at (5i)" => "59" –

Cuestiones relacionadas