Commit d10b34a685509eebbe52391ffce861cde45cc0ca
1 parent
87c397f5
Exists in
spb-stable
and in
2 other branches
Save repository size to projects table
Signed-off-by: Dmitriy Zaporozhets <dmitriy.zaporozhets@gmail.com>
Showing
6 changed files
with
34 additions
and
2 deletions
Show diff stats
app/helpers/projects_helper.rb
@@ -163,7 +163,7 @@ module ProjectsHelper | @@ -163,7 +163,7 @@ module ProjectsHelper | ||
163 | end | 163 | end |
164 | 164 | ||
165 | def repository_size(project = nil) | 165 | def repository_size(project = nil) |
166 | - "#{(project || @project).repository.size} MB" | 166 | + "#{(project || @project).repository_size} MB" |
167 | rescue | 167 | rescue |
168 | # In order to prevent 500 error | 168 | # In order to prevent 500 error |
169 | # when application cannot allocate memory | 169 | # when application cannot allocate memory |
app/models/project.rb
@@ -562,4 +562,8 @@ class Project < ActiveRecord::Base | @@ -562,4 +562,8 @@ class Project < ActiveRecord::Base | ||
562 | def forked_from?(project) | 562 | def forked_from?(project) |
563 | forked? && project == forked_from_project | 563 | forked? && project == forked_from_project |
564 | end | 564 | end |
565 | + | ||
566 | + def update_repository_size | ||
567 | + update_attribute(:repository_size, repository.size) | ||
568 | + end | ||
565 | end | 569 | end |
app/services/git_push_service.rb
@@ -25,6 +25,7 @@ class GitPushService | @@ -25,6 +25,7 @@ class GitPushService | ||
25 | 25 | ||
26 | project.ensure_satellite_exists | 26 | project.ensure_satellite_exists |
27 | project.repository.expire_cache | 27 | project.repository.expire_cache |
28 | + project.update_repository_size | ||
28 | 29 | ||
29 | if push_to_existing_branch?(ref, oldrev) | 30 | if push_to_existing_branch?(ref, oldrev) |
30 | project.update_merge_requests(oldrev, newrev, ref, @user) | 31 | project.update_merge_requests(oldrev, newrev, ref, @user) |
@@ -0,0 +1,21 @@ | @@ -0,0 +1,21 @@ | ||
1 | +class MigrateRepoSize < ActiveRecord::Migration | ||
2 | + def up | ||
3 | + Project.reset_column_information | ||
4 | + Project.find_each(batch_size: 500) do |project| | ||
5 | + begin | ||
6 | + if project.empty_repo? | ||
7 | + print '-' | ||
8 | + else | ||
9 | + project.update_repository_size | ||
10 | + print '.' | ||
11 | + end | ||
12 | + rescue | ||
13 | + print 'F' | ||
14 | + end | ||
15 | + end | ||
16 | + puts 'Done' | ||
17 | + end | ||
18 | + | ||
19 | + def down | ||
20 | + end | ||
21 | +end |
db/schema.rb
@@ -11,7 +11,7 @@ | @@ -11,7 +11,7 @@ | ||
11 | # | 11 | # |
12 | # It's strongly recommended that you check this file into your version control system. | 12 | # It's strongly recommended that you check this file into your version control system. |
13 | 13 | ||
14 | -ActiveRecord::Schema.define(version: 20140428105831) do | 14 | +ActiveRecord::Schema.define(version: 20140502125220) do |
15 | 15 | ||
16 | # These are extensions that must be enabled in order to support this database | 16 | # These are extensions that must be enabled in order to support this database |
17 | enable_extension "plpgsql" | 17 | enable_extension "plpgsql" |
@@ -222,6 +222,7 @@ ActiveRecord::Schema.define(version: 20140428105831) do | @@ -222,6 +222,7 @@ ActiveRecord::Schema.define(version: 20140428105831) do | ||
222 | t.integer "visibility_level", default: 0, null: false | 222 | t.integer "visibility_level", default: 0, null: false |
223 | t.boolean "archived", default: false, null: false | 223 | t.boolean "archived", default: false, null: false |
224 | t.string "import_status" | 224 | t.string "import_status" |
225 | + t.float "repository_size", default: 0.0 | ||
225 | end | 226 | end |
226 | 227 | ||
227 | add_index "projects", ["creator_id"], name: "index_projects_on_creator_id", using: :btree | 228 | add_index "projects", ["creator_id"], name: "index_projects_on_creator_id", using: :btree |