X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/40bbccf9acf872cd610adeb317f06f5ba57504a0..e37b9b6599f427520100aa262bcd65d6596bdbfd:/services/api/db/migrate/20141208174653_collection_file_names.rb diff --git a/services/api/db/migrate/20141208174653_collection_file_names.rb b/services/api/db/migrate/20141208174653_collection_file_names.rb index 20c85a1d07..50ab30c39a 100644 --- a/services/api/db/migrate/20141208174653_collection_file_names.rb +++ b/services/api/db/migrate/20141208174653_collection_file_names.rb @@ -1,21 +1,19 @@ +# Copyright (C) The Arvados Authors. All rights reserved. +# +# SPDX-License-Identifier: AGPL-3.0 + 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 - 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