17004: Add API server tests for output_properties
[arvados.git] / services / api / db / migrate / 20220505112900_add_output_properties.rb
index 42cde03bc7ac0bf5d2979e81d0e004cd37f27ed7..7d8c4b1ffbe6aed641356809de9007aaf7c25eb2 100644 (file)
@@ -3,8 +3,29 @@
 # SPDX-License-Identifier: AGPL-3.0
 
 class AddOutputProperties < ActiveRecord::Migration[5.2]
-  def change
+  def trgm_indexes
+    {
+      "container_requests" => "container_requests_trgm_text_search_idx",
+    }
+  end
+
+  def up
     add_column :container_requests, :output_properties, :jsonb, default: {}
     add_column :containers, :output_properties, :jsonb, default: {}
+
+    trgm_indexes.each do |model, indx|
+      execute "DROP INDEX IF EXISTS #{indx}"
+      execute "CREATE INDEX #{indx} ON #{model} USING gin((#{model.classify.constantize.full_text_trgm}) gin_trgm_ops)"
+    end
+  end
+
+  def down
+    remove_column :container_requests, :output_properties
+    remove_column :containers, :output_properties
+
+    trgm_indexes.each do |model, indx|
+      execute "DROP INDEX IF EXISTS #{indx}"
+      execute "CREATE INDEX #{indx} ON #{model} USING gin((#{model.classify.constantize.full_text_trgm}) gin_trgm_ops)"
+    end
   end
 end