Merge branch '8784-dir-listings'
[arvados.git] / services / api / db / migrate / 20140423132913_add_object_owner_to_logs.rb
index 7fa47028d0741bf7a2f8981f4f5784d67e54c94a..428ea57a6a78236da055b593e8e5b954e59af096 100644 (file)
@@ -1,16 +1,26 @@
+# Copyright (C) The Arvados Authors. All rights reserved.
+#
+# SPDX-License-Identifier: AGPL-3.0
+
 class AddObjectOwnerToLogs < ActiveRecord::Migration
   include CurrentApiClient
 
   def up
     add_column :logs, :object_owner_uuid, :string
     act_as_system_user do
-      Log.all.each do |log|
-        if log.properties[:new_attributes]
-          log.object_owner_uuid = log.properties[:new_attributes][:owner_uuid]
-        elsif log.properties[:old_attributes]
-          log.object_owner_uuid = log.properties[:old_attributes][:owner_uuid]
+      Log.find_in_batches(:batch_size => 500) do |batch|
+        upd = {}
+        ActiveRecord::Base.transaction do
+          batch.each do |log|
+            if log.properties["new_attributes"]
+              log.object_owner_uuid = log.properties['new_attributes']['owner_uuid']
+              log.save
+            elsif log.properties["old_attributes"]
+              log.object_owner_uuid = log.properties['old_attributes']['owner_uuid']
+              log.save
+            end
+          end
         end
-        log.save!
       end
     end
   end