Skip to content
Snippets Groups Projects
Commit 20727db1 authored by Bob Van Landuyt's avatar Bob Van Landuyt
Browse files

Add a model for `fork_networks`

The fork network will keep track of the root project as long as it's
present.
parent 8eec69ef
No related branches found
No related tags found
No related merge requests found
class ForkNetwork < ActiveRecord::Base
belongs_to :root_project
end
class CreateForkNetworks < ActiveRecord::Migration
include Gitlab::Database::MigrationHelpers
DOWNTIME = false
disable_ddl_transaction!
def up
create_table :fork_networks do |t|
t.references :root_project,
references: :projects,
index: { unique: true }
t.string :deleted_root_project_name
end
add_concurrent_foreign_key :fork_networks, :projects,
column: :root_project_id,
on_delete: :nullify
end
def down
if foreign_keys_for(:fork_networks, :root_project_id).any?
remove_foreign_key :fork_networks, column: :root_project_id
end
drop_table :fork_networks
end
end
Loading
Loading
@@ -591,6 +591,13 @@ ActiveRecord::Schema.define(version: 20171006091000) do
 
add_index "features", ["key"], name: "index_features_on_key", unique: true, using: :btree
 
create_table "fork_networks", force: :cascade do |t|
t.integer "root_project_id"
t.string "deleted_root_project_name"
end
add_index "fork_networks", ["root_project_id"], name: "index_fork_networks_on_root_project_id", unique: true, using: :btree
create_table "forked_project_links", force: :cascade do |t|
t.integer "forked_to_project_id", null: false
t.integer "forked_from_project_id", null: false
Loading
Loading
@@ -1793,6 +1800,7 @@ ActiveRecord::Schema.define(version: 20171006091000) do
add_foreign_key "environments", "projects", name: "fk_d1c8c1da6a", on_delete: :cascade
add_foreign_key "events", "projects", on_delete: :cascade
add_foreign_key "events", "users", column: "author_id", name: "fk_edfd187b6f", on_delete: :cascade
add_foreign_key "fork_networks", "projects", column: "root_project_id", name: "fk_e7b436b2b5", on_delete: :nullify
add_foreign_key "forked_project_links", "projects", column: "forked_to_project_id", name: "fk_434510edb0", on_delete: :cascade
add_foreign_key "gcp_clusters", "projects", on_delete: :cascade
add_foreign_key "gcp_clusters", "services", on_delete: :nullify
Loading
Loading
Loading
Loading
@@ -272,6 +272,9 @@ project:
- uploads
- members_and_requesters
- build_trace_section_names
- root_of_fork_network
- fork_network_member
- fork_network
award_emoji:
- awardable
- user
Loading
Loading
require 'rails_helper'
RSpec.describe ForkNetwork, type: :model do
pending "add some examples to (or delete) #{__FILE__}"
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment