Hi,

I'm writing a migration script which has to, well, actually migrate
all data from table A to table B, but I need to access the application
logic in model A for each row migrated. I could do this:

MyModel.all.each do |instance|
  # do stuff...
end

but as far as I know that would pre-instantiate all records in memory
beforehand, which could be *really bad* with the amount of records I'm
dealing with, and I only really need to work with a record at a time.
An alternative I'm currently using is:

execute("SELECT * FROM table_a").each_hash do |row|
  instance = MyModel.new(row)
end

but I believe this is also sub-optimal (especially since some
attributes are attr_protected, therefore I'm having to take care of
those manually, and other reasons).

Is there any obvious/elegant way of doing this I'm missing?

Thanks,

-Pedro

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to