Merge branch '5319-collection-pdh-fix-performance-2-wip'
[arvados.git] / services / api / db / migrate / 20141208174653_collection_file_names.rb
index 20b637cb01a0881f519a6e1442de28667fa843ca..0aeb3d4ac1007c3218e267c0d58183219654f84e 100644 (file)
@@ -2,14 +2,14 @@ class CollectionFileNames < ActiveRecord::Migration
   include CurrentApiClient
 
   def up
-    add_column :collections, :file_names, :string, :limit => 2**16
+    add_column :collections, :file_names, :string, :limit => 2**13
 
     act_as_system_user do
-      Collection.all.each do |c|
-        if c.manifest_text
-          c.file_names = c.manifest_text[0, 2**16]
-          c.save!
-        end
+      Collection.find_each(batch_size: 20) do |c|
+        file_names = c.manifest_files
+        ActiveRecord::Base.connection.execute "UPDATE collections
+                    SET file_names = #{ActiveRecord::Base.connection.quote(file_names)}
+                    WHERE uuid = '#{c.uuid}'"
       end
     end
   end