summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStan Hu <stanhu@gmail.com>2016-11-11 20:14:56 +0000
committerStan Hu <stanhu@gmail.com>2016-11-11 20:14:56 +0000
commit6eeff67c6e03233d4480a55d05d4e0f1a88aef4c (patch)
treeff9c4f0a4973025ff766f923cd83b6a084aaf8e3
parent294310f357532dd18cb8db4bd0e9aa7fb8c3a077 (diff)
parent591f10f6bd8d92e083fbc3c691c874e62144ba25 (diff)
downloadgitlab-ce-6eeff67c6e03233d4480a55d05d4e0f1a88aef4c.tar.gz
Merge branch '24386-8-14-rc1-requires-quite-amount-of-downtime' into 'master'
Update 8.14-rc1 migrations to minimize downtime and deploy time ## What does this MR do? Modify 8.14-rc1 migrations and code to minimize downtime and deploy time ## Are there points in the code the reviewer needs to double check? No ## Why was this MR needed? 8.14-rc1 migrations took too much time in staging, so we didn't want to take too much downtime in production ## Does this MR meet the acceptance criteria? - Tests - [x] Added for this feature/bug - [x] All builds are passing - [x] Conform by the [merge request performance guides](http://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html) - [x] Conform by the [style guides](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#style-guides) - [x] Branch has no merge conflicts with `master` (if it does - rebase it please) - [x] [Squashed related commits together](https://git-scm.com/book/en/Git-Tools-Rewriting-History#Squashing-Commits) ## What are the relevant issue numbers? Closes #24386 See merge request !7427
-rw-r--r--app/models/project.rb4
-rw-r--r--db/migrate/20160914131004_only_allow_merge_if_all_discussions_are_resolved.rb5
-rw-r--r--db/post_migrate/20161011222551_remove_inactive_jira_service_properties.rb (renamed from db/migrate/20161011222551_remove_inactive_jira_service_properties.rb)0
-rw-r--r--db/schema.rb2
-rw-r--r--spec/requests/api/projects_spec.rb8
5 files changed, 14 insertions, 5 deletions
diff --git a/app/models/project.rb b/app/models/project.rb
index bbe590b5a8a..94aabafce20 100644
--- a/app/models/project.rb
+++ b/app/models/project.rb
@@ -1334,6 +1334,10 @@ class Project < ActiveRecord::Base
end
end
+ def only_allow_merge_if_all_discussions_are_resolved
+ super || false
+ end
+
private
def pushes_since_gc_redis_key
diff --git a/db/migrate/20160914131004_only_allow_merge_if_all_discussions_are_resolved.rb b/db/migrate/20160914131004_only_allow_merge_if_all_discussions_are_resolved.rb
index fad62d716b3..4da5ec9bd28 100644
--- a/db/migrate/20160914131004_only_allow_merge_if_all_discussions_are_resolved.rb
+++ b/db/migrate/20160914131004_only_allow_merge_if_all_discussions_are_resolved.rb
@@ -5,10 +5,7 @@ class OnlyAllowMergeIfAllDiscussionsAreResolved < ActiveRecord::Migration
disable_ddl_transaction!
def up
- add_column_with_default(:projects,
- :only_allow_merge_if_all_discussions_are_resolved,
- :boolean,
- default: false)
+ add_column :projects, :only_allow_merge_if_all_discussions_are_resolved, :boolean
end
def down
diff --git a/db/migrate/20161011222551_remove_inactive_jira_service_properties.rb b/db/post_migrate/20161011222551_remove_inactive_jira_service_properties.rb
index 319d86ac159..319d86ac159 100644
--- a/db/migrate/20161011222551_remove_inactive_jira_service_properties.rb
+++ b/db/post_migrate/20161011222551_remove_inactive_jira_service_properties.rb
diff --git a/db/schema.rb b/db/schema.rb
index 3efb884c113..886be4520a3 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -915,7 +915,7 @@ ActiveRecord::Schema.define(version: 20161109150329) do
t.boolean "has_external_wiki"
t.boolean "lfs_enabled"
t.text "description_html"
- t.boolean "only_allow_merge_if_all_discussions_are_resolved", default: false, null: false
+ t.boolean "only_allow_merge_if_all_discussions_are_resolved"
end
add_index "projects", ["ci_id"], name: "index_projects_on_ci_id", using: :btree
diff --git a/spec/requests/api/projects_spec.rb b/spec/requests/api/projects_spec.rb
index d6e9fd2c4b2..f020d471422 100644
--- a/spec/requests/api/projects_spec.rb
+++ b/spec/requests/api/projects_spec.rb
@@ -360,6 +360,14 @@ describe API::API, api: true do
expect(json_response['only_allow_merge_if_all_discussions_are_resolved']).to be_falsey
end
+ it 'sets a project as allowing merge if only_allow_merge_if_all_discussions_are_resolved is nil' do
+ project = attributes_for(:project, only_allow_merge_if_all_discussions_are_resolved: nil)
+
+ post api('/projects', user), project
+
+ expect(json_response['only_allow_merge_if_all_discussions_are_resolved']).to be_falsey
+ end
+
it 'sets a project as allowing merge only if all discussions are resolved' do
project = attributes_for(:project, { only_allow_merge_if_all_discussions_are_resolved: true })