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

32 lines
900 B
Ruby
Raw Normal View History

# rubocop:disable all
2019-02-15 15:39:39 +05:30
class MigrateRepoSize < ActiveRecord::Migration[4.2]
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'] || ''
2017-08-17 22:00:37 +05:30
path = File.join(namespace_path, project['project_path'] + '.git')
2016-06-02 11:05:42 +05:30
2014-09-02 18:07:02 +05:30
begin
2019-03-02 22:35:43 +05:30
repo = Gitlab::Git::Repository.new('default', path, '', '')
2016-06-02 11:05:42 +05:30
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