debian-mirror-gitlab/db/migrate/20140502125220_migrate_repo_size.rb

33 lines
995 B
Ruby
Raw Normal View History

# rubocop:disable all
2014-09-02 18:07:02 +05:30
class MigrateRepoSize < ActiveRecord::Migration
2016-09-29 09:46:39 +05:30
DOWNTIME = false
2014-09-02 18:07:02 +05:30
def up
2016-06-02 11:05:42 +05:30
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'] || ''
2016-09-29 09:46:39 +05:30
repos_path = Gitlab.config.gitlab_shell['repos_path'] || Gitlab.config.repositories.storages.default
path = File.join(repos_path, namespace_path, project['project_path'] + '.git')
2016-06-02 11:05:42 +05:30
2014-09-02 18:07:02 +05:30
begin
2016-06-02 11:05:42 +05:30
repo = Gitlab::Git::Repository.new(path)
if repo.empty?
2014-09-02 18:07:02 +05:30
print '-'
else
2016-06-02 11:05:42 +05:30
size = repo.size
2014-09-02 18:07:02 +05:30
print '.'
2016-06-02 11:05:42 +05:30
execute("UPDATE projects SET repository_size = #{size} WHERE id = #{id}")
2014-09-02 18:07:02 +05:30
end
2016-06-02 11:05:42 +05:30
rescue => e
puts "\nFailed to update project #{id}: #{e}"
2014-09-02 18:07:02 +05:30
end
end
2016-06-02 11:05:42 +05:30
puts "\nDone"
2014-09-02 18:07:02 +05:30
end
def down
end
end