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
- file_names = []
- c.manifest_text.split.each do |part|
- file_name = part.rpartition(':')[-1]
- file_names << file_name if file_name != '.'
- end
-
- c.file_names = file_names.uniq.join(" ")[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