diff --git a/app/models/ci/runner_group.rb b/app/models/ci/runner_group.rb new file mode 100644 index 0000000000000000000000000000000000000000..87f3ba13bff021502d68dc93db48b5ef081901ee --- /dev/null +++ b/app/models/ci/runner_group.rb @@ -0,0 +1,8 @@ +module Ci + class RunnerGroup < ActiveRecord::Base + extend Gitlab::Ci::Model + + belongs_to :runner + belongs_to :group, class_name: '::Group' + end +end diff --git a/db/migrate/20170301101006_add_ci_runner_groups.rb b/db/migrate/20170301101006_add_ci_runner_groups.rb new file mode 100644 index 0000000000000000000000000000000000000000..73a135b0ee1b76feb66da9ab6398e8021d6aaf71 --- /dev/null +++ b/db/migrate/20170301101006_add_ci_runner_groups.rb @@ -0,0 +1,27 @@ +class AddCiRunnerGroups < ActiveRecord::Migration + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + disable_ddl_transaction! + + def up + create_table :ci_runner_groups do |t| + t.integer :runner_id + t.integer :group_id + + t.timestamps_with_timezone null: false + end + + add_concurrent_index :ci_runner_groups, :runner_id + add_concurrent_foreign_key :ci_runner_groups, :ci_runners, column: :runner_id, on_delete: :cascade + + add_concurrent_index :ci_runner_groups, :group_id + add_concurrent_index :ci_runner_groups, [:runner_id, :group_id], unique: true + add_concurrent_foreign_key :ci_runner_groups, :namespaces, column: :group_id, on_delete: :cascade + end + + def down + drop_table :ci_runner_groups + end +end diff --git a/db/schema.rb b/db/schema.rb index df621956c808e6881cbb02fb346182c597e4d443..9f3b27b8b6ade0b85b1c09d3874c0efb3a6e54fd 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -443,6 +443,17 @@ ActiveRecord::Schema.define(version: 20180418053107) do add_index "ci_pipelines", ["status"], name: "index_ci_pipelines_on_status", using: :btree add_index "ci_pipelines", ["user_id"], name: "index_ci_pipelines_on_user_id", using: :btree + create_table "ci_runner_groups", force: :cascade do |t| + t.integer "runner_id" + t.integer "group_id" + t.datetime "created_at", null: false + t.datetime "updated_at", null: false + end + + add_index "ci_runner_groups", ["group_id"], name: "index_ci_runner_groups_on_group_id", using: :btree + add_index "ci_runner_groups", ["runner_id", "group_id"], name: "index_ci_runner_groups_on_runner_id_and_group_id", unique: true, using: :btree + add_index "ci_runner_groups", ["runner_id"], name: "index_ci_runner_groups_on_runner_id", using: :btree + create_table "ci_runner_projects", force: :cascade do |t| t.integer "runner_id", null: false t.datetime "created_at" @@ -2078,6 +2089,8 @@ ActiveRecord::Schema.define(version: 20180418053107) do add_foreign_key "ci_pipelines", "ci_pipeline_schedules", column: "pipeline_schedule_id", name: "fk_3d34ab2e06", on_delete: :nullify add_foreign_key "ci_pipelines", "ci_pipelines", column: "auto_canceled_by_id", name: "fk_262d4c2d19", on_delete: :nullify add_foreign_key "ci_pipelines", "projects", name: "fk_86635dbd80", on_delete: :cascade + add_foreign_key "ci_runner_groups", "ci_runners", column: "runner_id", name: "fk_d8a0baa93b", on_delete: :cascade + add_foreign_key "ci_runner_groups", "namespaces", column: "group_id", name: "fk_cdafb3bbba", on_delete: :cascade add_foreign_key "ci_runner_projects", "projects", name: "fk_4478a6f1e4", on_delete: :cascade add_foreign_key "ci_stages", "ci_pipelines", column: "pipeline_id", name: "fk_fb57e6cc56", on_delete: :cascade add_foreign_key "ci_stages", "projects", name: "fk_2360681d1d", on_delete: :cascade