Tôi có một ứng dụng Rails 3, nơi tôi cần phải nhập một tệp XML được cung cấp bởi một hệ thống bên ngoài vào cơ sở dữ liệu Postgres. Tôi muốn sử dụng một cái gì đó như ActiveRecord-Import nhưng điều này không xuất hiện để xử lý khả năng upsert cho Postgres, và một số hồ sơ tôi sẽ được ingesting đã tồn tại, nhưng sẽ cần phải được cập nhật.upsert số lượng lớn với Ruby on Rails
Hầu hết những gì tôi đọc đều khuyên bạn nên viết SQL ngay lập tức, nhưng điều này có vẻ như một vấn đề có thể đã được giải quyết rồi. Tôi không thể tìm thấy nó.
Cảm ơn.
Tôi không chắc Rails là công cụ thích hợp cho việc này. Bạn đã cân nhắc việc thực hiện điều này bên ngoài Rails bằng cách sử dụng các công cụ XML và PostgreSQL hiện có chưa? –
Khi ở trong cơ sở dữ liệu, dữ liệu được chèn sẽ trở thành các mô hình được sử dụng cho các mục đích khác, có thể chỉnh sửa thông qua web, v.v. chúng tôi có các xác nhận hợp lệ và liên kết trên mô hình. Tôi lo lắng rằng việc phá vỡ đường ray sẽ khiến chúng tôi lặp lại rất nhiều công việc và bảo trì khó khăn trên đường. –
Nếu bạn muốn xác thực ActiveRecord chạy, bạn sẽ phải chèn một bản ghi tại một thời điểm. Nếu bạn muốn cập nhật hàng loạt + xác nhận hợp lệ thì bạn sẽ phải thiết lập các xác nhận hợp lệ/ràng buộc ở phía db. Nếu bạn muốn hiệu quả trong trường hợp này, bạn có thể phải thỏa hiệp về khả năng bảo trì mã –