summaryrefslogtreecommitdiff
path: root/db/migrate/20190927055500_create_description_versions.rb
blob: 6ad34d4a89e9a5b5b5a50fd4fdbd378736b71870 (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 CreateDescriptionVersions < ActiveRecord::Migration[5.2]
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  def up
    create_table :description_versions do |t|
      t.timestamps_with_timezone
      t.references :issue, index: false, foreign_key: { on_delete: :cascade }, type: :integer
      t.references :merge_request, index: false, foreign_key: { on_delete: :cascade }, type: :integer
      t.references :epic, index: false, foreign_key: { on_delete: :cascade }, type: :integer
      t.text :description
    end

    add_index :description_versions, :issue_id, where: 'issue_id IS NOT NULL'
    add_index :description_versions, :merge_request_id, where: 'merge_request_id IS NOT NULL'
    add_index :description_versions, :epic_id, where: 'epic_id IS NOT NULL'

    add_column :system_note_metadata, :description_version_id, :bigint
  end

  def down
    remove_column :system_note_metadata, :description_version_id

    drop_table :description_versions
  end
end