summaryrefslogtreecommitdiff
path: root/db/migrate/20180902070406_create_group_group_links.rb
blob: 95fed0ebf962e50577c56ecd4efd50a7ebc18568 (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
# frozen_string_literal: true

class CreateGroupGroupLinks < ActiveRecord::Migration[5.2]
  include Gitlab::Database::MigrationHelpers

  DOWNTIME = false

  def up
    create_table :group_group_links do |t|
      t.timestamps_with_timezone null: false

      t.references :shared_group, null: false,
                                  index: false,
                                  foreign_key: { on_delete: :cascade,
                                                 to_table: :namespaces }
      t.references :shared_with_group, null: false,
                                       foreign_key: { on_delete: :cascade,
                                                      to_table: :namespaces }
      t.date :expires_at
      t.index [:shared_group_id, :shared_with_group_id],
              { unique: true,
                name: 'index_group_group_links_on_shared_group_and_shared_with_group' }
      t.integer :group_access, { limit: 2,
                                 default: 30, # Gitlab::Access::DEVELOPER
                                 null: false }
    end
  end

  def down
    drop_table :group_group_links
  end
end