summaryrefslogtreecommitdiff
path: root/db/migrate/20171127151038_add_events_related_columns_to_merge_request_metrics.rb
blob: 385de9dd73dfb89cd6fe986ad172d52fefe9f329 (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
30
31
32
33
34
35
36
37
class AddEventsRelatedColumnsToMergeRequestMetrics < ActiveRecord::Migration[4.2]
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  disable_ddl_transaction!

  def up
    change_table :merge_request_metrics do |t|
      t.references :merged_by, references: :users
      t.references :latest_closed_by, references: :users
    end

    add_column :merge_request_metrics, :latest_closed_at, :datetime_with_timezone

    add_concurrent_foreign_key :merge_request_metrics, :users,
                               column: :merged_by_id,
                               on_delete: :nullify

    add_concurrent_foreign_key :merge_request_metrics, :users,
                               column: :latest_closed_by_id,
                               on_delete: :nullify
  end

  def down
    if foreign_keys_for(:merge_request_metrics, :merged_by_id).any?
      remove_foreign_key :merge_request_metrics, column: :merged_by_id
    end

    if foreign_keys_for(:merge_request_metrics, :latest_closed_by_id).any?
      remove_foreign_key :merge_request_metrics, column: :latest_closed_by_id
    end

    remove_columns :merge_request_metrics,
      :merged_by_id, :latest_closed_by_id, :latest_closed_at
  end
end