> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to