40 lines
1.3 KiB
Ruby
40 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class DropUnusedFieldsFromMergeRequestAssignees < Gitlab::Database::Migration[2.0]
|
|
disable_ddl_transaction!
|
|
|
|
def up
|
|
with_lock_retries do
|
|
if column_exists?(:merge_request_assignees, :state) # rubocop:disable Style/IfUnlessModifier
|
|
remove_column :merge_request_assignees, :state
|
|
end
|
|
|
|
if column_exists?(:merge_request_assignees, :updated_state_by_user_id)
|
|
remove_column :merge_request_assignees, :updated_state_by_user_id
|
|
end
|
|
end
|
|
end
|
|
|
|
def down
|
|
with_lock_retries do
|
|
unless column_exists?(:merge_request_assignees, :state)
|
|
add_column :merge_request_assignees, :state, :smallint, default: 0, null: false
|
|
end
|
|
|
|
unless column_exists?(:merge_request_assignees, :updated_state_by_user_id)
|
|
add_column :merge_request_assignees, :updated_state_by_user_id, :bigint
|
|
end
|
|
end
|
|
|
|
add_concurrent_index :merge_request_assignees, [:user_id, :state],
|
|
where: 'state = 2',
|
|
name: 'index_on_merge_request_assignees_user_id_and_state'
|
|
|
|
add_concurrent_index :merge_request_assignees, :updated_state_by_user_id,
|
|
name: 'index_on_merge_request_assignees_updated_state_by_user_id'
|
|
|
|
add_concurrent_foreign_key :merge_request_assignees, :users,
|
|
column: :updated_state_by_user_id,
|
|
on_delete: :nullify
|
|
end
|
|
end
|