> 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.
Hi, Have you thought of using limit and a offset with a regular find? (below is the code but I didn't check if it's valid) current_offset = 0 limit = 100 begin result = MyModel.find(:all, :limit=>limit, :offset=>current_offset) #some operations current_offset += limit end while result.size == 0 --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---

