Merge branch '13752-index-all-filenames'
[arvados.git] / services / api / db / migrate / 20180806133039_index_all_filenames.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 class IndexAllFilenames < ActiveRecord::Migration
6   def up
7     ActiveRecord::Base.connection.execute 'ALTER TABLE collections ALTER COLUMN file_names TYPE text'
8     Collection.find_each(batch_size: 20) do |c|
9       ActiveRecord::Base.connection.execute "UPDATE collections
10                     SET file_names = #{ActiveRecord::Base.connection.quote(c.manifest_files)}
11                     WHERE uuid = #{ActiveRecord::Base.connection.quote(c.uuid)}
12                     AND portable_data_hash = #{ActiveRecord::Base.connection.quote(c.portable_data_hash)}"
13     end
14   end
15   def down
16     ActiveRecord::Base.connection.execute 'ALTER TABLE collections ALTER COLUMN file_names TYPE varchar(8192)'
17   end
18 end