gitlab-org--gitlab-foss/db/post_migrate/20210805192450_update_trial...

49 lines
1.4 KiB
Ruby

# frozen_string_literal: true
class UpdateTrialPlansCiDailyPipelineScheduleTriggers < ActiveRecord::Migration[6.1]
include Gitlab::Database::MigrationHelpers
PREMIUM_TRIAL = 'premium_trial'
ULTIMATE_TRIAL = 'ultimate_trial'
EVERY_5_MINUTES = (1.day.in_minutes / 5).to_i
class Plan < ActiveRecord::Base
self.table_name = 'plans'
self.inheritance_column = :_type_disabled
has_one :limits, class_name: 'PlanLimits'
end
class PlanLimits < ActiveRecord::Base
self.table_name = 'plan_limits'
self.inheritance_column = :_type_disabled
belongs_to :plan
end
def plan_limits_present?
premium_trial_plan = Plan.find_by(name: PREMIUM_TRIAL)
ultimate_trial_plan = Plan.find_by(name: ULTIMATE_TRIAL)
premium_trial_plan && premium_trial_plan.limits && ultimate_trial_plan && ultimate_trial_plan.limits
end
def up
return unless Gitlab.com?
if plan_limits_present?
create_or_update_plan_limit('ci_daily_pipeline_schedule_triggers', PREMIUM_TRIAL, EVERY_5_MINUTES)
create_or_update_plan_limit('ci_daily_pipeline_schedule_triggers', ULTIMATE_TRIAL, EVERY_5_MINUTES)
end
end
def down
return unless Gitlab.com?
if plan_limits_present?
create_or_update_plan_limit('ci_daily_pipeline_schedule_triggers', PREMIUM_TRIAL, 0)
create_or_update_plan_limit('ci_daily_pipeline_schedule_triggers', ULTIMATE_TRIAL, 0)
end
end
end