diff options
author | Shinya Maeda <shinya@gitlab.com> | 2019-04-18 18:15:40 +0700 |
---|---|---|
committer | Shinya Maeda <shinya@gitlab.com> | 2019-05-03 18:41:08 +0700 |
commit | d0c4b8075ada46be149bf4ec148519aaa0e16695 (patch) | |
tree | bd5811935e12fd06dfaa306a21a06538500e5f26 | |
parent | 9f8123d935679582ac4f1487e1dcb559863372cb (diff) | |
download | gitlab-ce-create-merge-request-pipeline-on-chained-merge-ref-ce.tar.gz |
Create ActiveRecordModel and table for Merge Train featurecreate-merge-request-pipeline-on-chained-merge-ref-ce
This database table and AR model is going to be used for
the merge train feature.
-rw-r--r-- | app/models/internal_id.rb | 2 | ||||
-rw-r--r-- | db/migrate/20190418182545_create_merge_request_trains_table.rb | 21 | ||||
-rw-r--r-- | db/schema.rb | 18 |
3 files changed, 40 insertions, 1 deletions
diff --git a/app/models/internal_id.rb b/app/models/internal_id.rb index 237401899db..825fd1bb260 100644 --- a/app/models/internal_id.rb +++ b/app/models/internal_id.rb @@ -19,7 +19,7 @@ class InternalId < ApplicationRecord belongs_to :project belongs_to :namespace - enum usage: { issues: 0, merge_requests: 1, deployments: 2, milestones: 3, epics: 4, ci_pipelines: 5 } + enum usage: { issues: 0, merge_requests: 1, deployments: 2, milestones: 3, epics: 4, ci_pipelines: 5, merge_trains: 6 } validates :usage, presence: true diff --git a/db/migrate/20190418182545_create_merge_request_trains_table.rb b/db/migrate/20190418182545_create_merge_request_trains_table.rb new file mode 100644 index 00000000000..6610806453a --- /dev/null +++ b/db/migrate/20190418182545_create_merge_request_trains_table.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +class CreateMergeRequestTrainsTable < ActiveRecord::Migration[5.1] + include Gitlab::Database::MigrationHelpers + + DOWNTIME = false + + def change + create_table :merge_trains, id: :bigserial do |t| + t.references :project, foreign_key: { on_delete: :cascade }, type: :integer, index: false, null: false + t.references :merge_request, foreign_key: { on_delete: :cascade }, type: :integer, null: false + t.references :user, foreign_key: { on_delete: :cascade }, type: :integer, null: false + t.references :pipeline, foreign_key: { to_table: :ci_pipelines, on_delete: :nullify }, type: :integer + t.string :target_branch, null: false + t.integer :iid, null: false + + t.index [:project_id, :merge_request_id], unique: true + t.index [:project_id, :iid], unique: true + end + end +end diff --git a/db/schema.rb b/db/schema.rb index de9e6f0b40d..c1fcf803437 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -1361,6 +1361,20 @@ ActiveRecord::Schema.define(version: 20190426180107) do t.index ["merge_request_id"], name: "index_merge_requests_closing_issues_on_merge_request_id", using: :btree end + create_table "merge_trains", force: :cascade do |t| + t.integer "project_id", null: false + t.integer "merge_request_id", null: false + t.integer "user_id", null: false + t.integer "pipeline_id" + t.string "target_branch", null: false + t.integer "iid", null: false + t.index ["merge_request_id"], name: "index_merge_trains_on_merge_request_id", using: :btree + t.index ["pipeline_id"], name: "index_merge_trains_on_pipeline_id", using: :btree + t.index ["project_id", "iid"], name: "index_merge_trains_on_project_id_and_iid", unique: true, using: :btree + t.index ["project_id", "merge_request_id"], name: "index_merge_trains_on_project_id_and_merge_request_id", unique: true, using: :btree + t.index ["user_id"], name: "index_merge_trains_on_user_id", using: :btree + end + create_table "milestones", id: :serial, force: :cascade do |t| t.string "title", null: false t.integer "project_id" @@ -2514,6 +2528,10 @@ ActiveRecord::Schema.define(version: 20190426180107) do add_foreign_key "merge_requests", "users", column: "updated_by_id", name: "fk_641731faff", on_delete: :nullify add_foreign_key "merge_requests_closing_issues", "issues", on_delete: :cascade add_foreign_key "merge_requests_closing_issues", "merge_requests", on_delete: :cascade + add_foreign_key "merge_trains", "ci_pipelines", column: "pipeline_id", on_delete: :nullify + add_foreign_key "merge_trains", "merge_requests", on_delete: :cascade + add_foreign_key "merge_trains", "projects", on_delete: :cascade + add_foreign_key "merge_trains", "users", on_delete: :cascade add_foreign_key "milestones", "namespaces", column: "group_id", name: "fk_95650a40d4", on_delete: :cascade add_foreign_key "milestones", "projects", name: "fk_9bd0a0c791", on_delete: :cascade add_foreign_key "note_diff_files", "notes", column: "diff_note_id", on_delete: :cascade |