Files
gitlab-foss/db/migrate/20241009000002_add_workspace_delayed_termination_constraints.rb
2024-11-14 03:25:34 +00:00

35 lines
1.1 KiB
Ruby

# frozen_string_literal: true
class AddWorkspaceDelayedTerminationConstraints < Gitlab::Database::Migration[2.2]
milestone "17.6"
disable_ddl_transaction!
TABLE_NAME = :workspaces_agent_configs
def constraint_1_name
check_constraint_name TABLE_NAME,
"max_active_hours_before_stop and max_stopped_hours_before_termination", "max_total_size_1_year"
end
def constraint_2_name
check_constraint_name TABLE_NAME, :max_active_hours_before_stop, "min_size_0"
end
def constraint_3_name
check_constraint_name TABLE_NAME, :max_stopped_hours_before_termination, "min_size_0"
end
def up
add_check_constraint TABLE_NAME,
"(max_active_hours_before_stop + max_stopped_hours_before_termination) <= 8760", constraint_1_name
add_check_constraint TABLE_NAME, "max_active_hours_before_stop > 0", constraint_2_name
add_check_constraint TABLE_NAME, "max_stopped_hours_before_termination > 0", constraint_3_name
end
def down
remove_check_constraint TABLE_NAME, constraint_1_name
remove_check_constraint TABLE_NAME, constraint_2_name
remove_check_constraint TABLE_NAME, constraint_3_name
end
end