Tengo una aplicación Rails 3 donde tengo que ingerir un archivo XML proporcionado por un sistema externo en una base de datos PostgreSQL. Me gustaría usar algo como ActiveRecord-Import, pero parece que esto no maneja las capacidades de Postgres, y algunos de los registros que voy a ingerir ya existirán, pero deberán actualizarse.upsert a granel con Ruby on Rails
La mayor parte de lo que estoy leyendo recomienda escribir SQL sobre la marcha, pero esto parece ser un problema que puede haber sido resuelto ya. Simplemente no puedo encontrarlo.
Gracias.
No estoy seguro de que Rails sea la herramienta adecuada para esto. ¿Ha considerado hacer esto fuera de Rails usando las herramientas XML y PostgreSQL existentes? –
Una vez en la base de datos, los datos insertados se convierten en modelos utilizados para otros fines, editables a través de la web, etc., tenemos validaciones y asociaciones en el modelo. Me preocupa que la ruptura de los raíles nos haga duplicar mucho trabajo y dificultar el mantenimiento en el futuro. –
Si desea que se ejecuten las validaciones de ActiveRecord, tendrá que insertar un registro a la vez. Si desea una actualización masiva + validaciones, entonces tendrá que configurar las validaciones/restricciones en el lado db. Si desea eficiencia en este caso, puede que tenga que comprometerse en la mantenibilidad del código –