2017-09-28 14:38:12 +00:00
|
|
|
class CreateForkNetworkMembers < ActiveRecord::Migration
|
|
|
|
include Gitlab::Database::MigrationHelpers
|
|
|
|
|
|
|
|
DOWNTIME = false
|
|
|
|
|
|
|
|
disable_ddl_transaction!
|
|
|
|
|
|
|
|
def up
|
|
|
|
create_table :fork_network_members do |t|
|
|
|
|
t.references :fork_network, null: false, index: true, foreign_key: { on_delete: :cascade }
|
|
|
|
t.references :project, null: false, index: { unique: true }, foreign_key: { on_delete: :cascade }
|
|
|
|
t.references :forked_from_project, references: :projects
|
|
|
|
end
|
|
|
|
|
|
|
|
add_concurrent_foreign_key :fork_network_members, :projects,
|
|
|
|
column: :forked_from_project_id,
|
|
|
|
on_delete: :nullify
|
|
|
|
end
|
|
|
|
|
|
|
|
def down
|
2017-09-20 15:41:11 +00:00
|
|
|
if foreign_keys_for(:fork_network_members, :forked_from_project_id).any?
|
2017-09-28 14:38:12 +00:00
|
|
|
remove_foreign_key :fork_network_members, column: :forked_from_project_id
|
|
|
|
end
|
2018-01-11 16:34:01 +00:00
|
|
|
|
2017-09-28 14:38:12 +00:00
|
|
|
drop_table :fork_network_members
|
|
|
|
end
|
|
|
|
end
|