diff options
author | Felipe Artur <felipefac@gmail.com> | 2016-10-15 01:38:41 +0300 |
---|---|---|
committer | Felipe Artur <felipefac@gmail.com> | 2016-10-20 01:00:52 +0300 |
commit | ed9838cd292ce78ae98079f513d0d1648b7f49f0 (patch) | |
tree | 463609b32b527610781e68045e13628df97e30df /db | |
parent | c08435e3c25f0a7a705ed8a49b16dde176b41a40 (diff) |
Create project feature when project is created
Diffstat (limited to 'db')
-rw-r--r-- | db/migrate/20161019213545_generate_project_feature_for_projects.rb | 28 | ||||
-rw-r--r-- | db/schema.rb | 2 |
2 files changed, 29 insertions, 1 deletions
diff --git a/db/migrate/20161019213545_generate_project_feature_for_projects.rb b/db/migrate/20161019213545_generate_project_feature_for_projects.rb new file mode 100644 index 00000000000..4554e14b0df --- /dev/null +++ b/db/migrate/20161019213545_generate_project_feature_for_projects.rb @@ -0,0 +1,28 @@ +class GenerateProjectFeatureForProjects < ActiveRecord::Migration + DOWNTIME = true + + DOWNTIME_REASON = <<-HEREDOC + Application was eager loading project_feature for all projects generating an extra query + everytime a project was fetched. We removed that behavior to avoid the extra query, this migration + makes sure all projects have a project_feature record associated. + HEREDOC + + def up + # Generate enabled values for each project feature 20, 20, 20, 20, 20 + # All features are enabled by default + enabled_values = [ProjectFeature::ENABLED] * 5 + + execute <<-EOF.strip_heredoc + INSERT INTO project_features + (project_id, merge_requests_access_level, builds_access_level, + issues_access_level, snippets_access_level, wiki_access_level) + (SELECT projects.id, #{enabled_values.join(',')} FROM projects LEFT OUTER JOIN project_features + ON project_features.project_id = projects.id + WHERE project_features.id IS NULL) + EOF + end + + def down + "Not needed" + end +end diff --git a/db/schema.rb b/db/schema.rb index 65f55aa109b..a3c7fc2fd57 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: 20161018024550) do +ActiveRecord::Schema.define(version: 20161019213545) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" |