Handle non-nil, empty Instances return refs #20978
[arvados.git] / services / api / db / migrate / 20220505112900_add_output_properties.rb
1 # Copyright (C) The Arvados Authors. All rights reserved.
2 #
3 # SPDX-License-Identifier: AGPL-3.0
4
5 class AddOutputProperties < ActiveRecord::Migration[5.2]
6   def trgm_indexes
7     {
8       "container_requests" => "container_requests_trgm_text_search_idx",
9     }
10   end
11
12   def up
13     add_column :container_requests, :output_properties, :jsonb, default: {}
14     add_column :containers, :output_properties, :jsonb, default: {}
15
16     trgm_indexes.each do |model, indx|
17       execute "DROP INDEX IF EXISTS #{indx}"
18       execute "CREATE INDEX #{indx} ON #{model} USING gin((#{model.classify.constantize.full_text_trgm}) gin_trgm_ops)"
19     end
20   end
21
22   def down
23     remove_column :container_requests, :output_properties
24     remove_column :containers, :output_properties
25
26     trgm_indexes.each do |model, indx|
27       execute "DROP INDEX IF EXISTS #{indx}"
28       execute "CREATE INDEX #{indx} ON #{model} USING gin((#{model.classify.constantize.full_text_trgm}) gin_trgm_ops)"
29     end
30   end
31 end