summaryrefslogtreecommitdiff
path: root/db/migrate/20210722150102_operations_feature_flags_correct_flexible_rollout_values.rb
blob: 974559239d7b28c9e0dcf596917b1a52c548e1d8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# frozen_string_literal: true

class OperationsFeatureFlagsCorrectFlexibleRolloutValues < ActiveRecord::Migration[6.1]
  STICKINESS = { "USERID" => "userId", "RANDOM" => "random", "SESSIONID" => "sessionId", "DEFAULT" => "default" }.freeze

  def up
    STICKINESS.each do |before, after|
      update_statement = <<-SQL
        UPDATE operations_strategies
        SET parameters = parameters || jsonb_build_object('stickiness', '#{quote_string(after)}')
        WHERE name = 'flexibleRollout' AND parameters->>'stickiness' = '#{quote_string(before)}'
      SQL

      execute(update_statement)
    end
  end

  def down
    STICKINESS.each do |before, after|
      update_statement = <<-SQL
        UPDATE operations_strategies
        SET parameters = parameters || jsonb_build_object('stickiness', '#{quote_string(before)}')
        WHERE name = 'flexibleRollout' AND parameters->>'stickiness' = '#{quote_string(after)}'
      SQL

      execute(update_statement)
    end
  end
end