diff options
author | Felipe Artur <felipefac@gmail.com> | 2017-09-15 11:55:57 -0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2017-09-15 14:45:21 -0300 |
commit | b20595b2bd0023ebbc2ec46017f5d1cb1533fb4f (patch) | |
tree | 03157749ac0c980ab84d3ca9f659f36a01d55bfb | |
parent | 056c42cca5aa21fb2ebc9e5fc2cbedf18cf8dbbc (diff) | |
download | gitlab-ce-b20595b2bd0023ebbc2ec46017f5d1cb1533fb4f.tar.gz |
Add data migration
-rw-r--r-- | db/post_migrate/20170913180600_fix_projects_without_project_feature.rb | 33 | ||||
-rw-r--r-- | db/schema.rb | 2 | ||||
-rw-r--r-- | spec/services/projects/update_service_spec.rb | 2 |
3 files changed, 35 insertions, 2 deletions
diff --git a/db/post_migrate/20170913180600_fix_projects_without_project_feature.rb b/db/post_migrate/20170913180600_fix_projects_without_project_feature.rb new file mode 100644 index 00000000000..bfa9ad80c7d --- /dev/null +++ b/db/post_migrate/20170913180600_fix_projects_without_project_feature.rb @@ -0,0 +1,33 @@ +class FixProjectsWithoutProjectFeature < ActiveRecord::Migration + DOWNTIME = false + + def up + # Deletes corrupted project features + sql = "DELETE FROM project_features WHERE project_id IS NULL" + execute(sql) + + # Creates missing project features with private visibility + sql = + %Q{ + INSERT INTO project_features(project_id, repository_access_level, issues_access_level, merge_requests_access_level, wiki_access_level, + builds_access_level, snippets_access_level, created_at, updated_at) + SELECT projects.id as project_id, + 10 as repository_access_level, + 10 as issues_access_level, + 10 as merge_requests_access_level, + 10 as wiki_access_level, + 10 as builds_access_level , + 10 as snippets_access_level, + projects.created_at, + projects.updated_at + FROM projects + LEFT OUTER JOIN project_features ON project_features.project_id = projects.id + WHERE (project_features.id IS NULL) + } + + execute(sql) + end + + def down + end +end diff --git a/db/schema.rb b/db/schema.rb index df941afa7d7..930c5d6a05a 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 20170905112933) do +ActiveRecord::Schema.define(version: 20170913180600) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" diff --git a/spec/services/projects/update_service_spec.rb b/spec/services/projects/update_service_spec.rb index 371b0abf937..c551083ac90 100644 --- a/spec/services/projects/update_service_spec.rb +++ b/spec/services/projects/update_service_spec.rb @@ -163,7 +163,7 @@ describe Projects::UpdateService, '#execute' do result = update_project(project, admin, path: 'existing') expect(result).to include(status: :error) - expect(result[:message]).to match('Project could not be updated!') + expect(result[:message]).to match('There is already a repository with that name on disk') expect(project).not_to be_valid expect(project.errors.messages).to have_key(:base) expect(project.errors.messages[:base]).to include('There is already a repository with that name on disk') |