summaryrefslogtreecommitdiff
path: root/db/migrate/20140502125220_migrate_repo_size.rb
diff options
context:
space:
mode:
authorKamil Trzcinski <ayufan@ayufan.eu>2016-04-19 14:00:14 -0400
committerKamil Trzcinski <ayufan@ayufan.eu>2016-04-19 14:00:14 -0400
commit27e0c7723ca1eb85222210a20fd3fee1d77733f7 (patch)
tree0b25b0122c7918382c22ab277df421585f9e58b1 /db/migrate/20140502125220_migrate_repo_size.rb
parentee2dc0624093a0fe8665778fd0cc734754e7cdc9 (diff)
parent0063194ad6029915361d282392b6ab207ffd1520 (diff)
downloadgitlab-ce-27e0c7723ca1eb85222210a20fd3fee1d77733f7.tar.gz
Merge remote-tracking branch 'origin/master' into ci-commit-as-pipelineci-commit-as-pipeline
# Conflicts: # db/schema.rb
Diffstat (limited to 'db/migrate/20140502125220_migrate_repo_size.rb')
-rw-r--r--db/migrate/20140502125220_migrate_repo_size.rb21
1 files changed, 14 insertions, 7 deletions
diff --git a/db/migrate/20140502125220_migrate_repo_size.rb b/db/migrate/20140502125220_migrate_repo_size.rb
index eed6d366814..efdf53112fd 100644
--- a/db/migrate/20140502125220_migrate_repo_size.rb
+++ b/db/migrate/20140502125220_migrate_repo_size.rb
@@ -1,19 +1,26 @@
class MigrateRepoSize < ActiveRecord::Migration
def up
- Project.reset_column_information
- Project.find_each(batch_size: 500) do |project|
+ project_data = execute('SELECT projects.id, namespaces.path AS namespace_path, projects.path AS project_path FROM projects LEFT JOIN namespaces ON projects.namespace_id = namespaces.id')
+
+ project_data.each do |project|
+ id = project['id']
+ namespace_path = project['namespace_path'] || ''
+ path = File.join(Gitlab.config.gitlab_shell.repos_path, namespace_path, project['project_path'] + '.git')
+
begin
- if project.empty_repo?
+ repo = Gitlab::Git::Repository.new(path)
+ if repo.empty?
print '-'
else
- project.update_repository_size
+ size = repo.size
print '.'
+ execute("UPDATE projects SET repository_size = #{size} WHERE id = #{id}")
end
- rescue
- print 'F'
+ rescue => e
+ puts "\nFailed to update project #{id}: #{e}"
end
end
- puts 'Done'
+ puts "\nDone"
end
def down