summaryrefslogtreecommitdiff
path: root/db/migrate/20220511144946_add_work_item_parent_child_table.rb
blob: 160dac7816019a56d3d5960fcf8d952daca35b4b (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
# frozen_string_literal: true

class AddWorkItemParentChildTable < Gitlab::Database::Migration[2.0]
  def up
    create_table :work_item_parent_links do |t|
      t.references :work_item,
                   index: false,
                   unique: true,
                   foreign_key: { to_table: :issues, on_delete: :cascade },
                   null: false
      t.references :work_item_parent,
                   index: true,
                   foreign_key: { to_table: :issues, on_delete: :cascade },
                   null: false
      t.integer :relative_position
      t.timestamps_with_timezone null: false

      t.index [:work_item_id, :work_item_parent_id],
              unique: true,
              name: :index_parent_links_on_work_item_id_and_work_item_parent_id
    end
  end

  def down
    drop_table :work_item_parent_links
  end
end