2017-03-15 22:26:48 +00:00
|
|
|
class CreateProtectedTags < ActiveRecord::Migration
|
|
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
|
|
|
|
# Set this constant to true if this migration requires downtime.
|
|
|
|
DOWNTIME = false
|
|
|
|
|
2017-03-31 16:56:26 +00:00
|
|
|
GITLAB_ACCESS_MASTER = 40
|
2017-03-15 22:26:48 +00:00
|
|
|
|
|
|
|
def change
|
|
|
|
create_table :protected_tags do |t|
|
|
|
|
t.integer :project_id, null: false
|
|
|
|
t.string :name, null: false
|
2017-03-31 16:56:26 +00:00
|
|
|
t.timestamps null: false
|
2017-03-15 22:26:48 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
add_index :protected_tags, :project_id
|
|
|
|
|
|
|
|
create_table :protected_tag_push_access_levels do |t|
|
|
|
|
t.references :protected_tag, index: { name: "index_protected_tag_push_access" }, foreign_key: true, null: false
|
2017-03-31 16:56:26 +00:00
|
|
|
t.integer :access_level, default: GITLAB_ACCESS_MASTER, null: true
|
|
|
|
t.references :user, foreign_key: true, index: true
|
|
|
|
t.integer :group_id#TODO: Should this have an index? Doesn't appear in brances #, index: true
|
2017-03-15 22:26:48 +00:00
|
|
|
t.timestamps null: false
|
|
|
|
end
|
|
|
|
|
2017-03-31 16:56:26 +00:00
|
|
|
add_foreign_key :protected_tag_push_access_levels, :namespaces, column: :group_id # rubocop: disable Migration/AddConcurrentForeignKey
|
2017-03-15 22:26:48 +00:00
|
|
|
end
|
|
|
|
end
|