2016-06-09 12:39:16 +00:00
# rubocop:disable all
2018-11-13 07:27:31 +00:00
class MigrateRepoSize < ActiveRecord :: Migration [ 4 . 2 ]
2016-09-14 18:15:28 +00:00
DOWNTIME = false
2014-05-02 13:05:08 +00:00
def up
2016-04-18 14:42:26 +00:00
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-02-16 02:08:30 +00:00
path = File . join ( namespace_path , project [ 'project_path' ] + '.git' )
2016-04-18 14:42:26 +00:00
2014-05-02 13:05:08 +00:00
begin
2017-08-22 11:54:14 +00:00
repo = Gitlab :: Git :: Repository . new ( 'default' , path , '' )
2016-04-18 14:42:26 +00:00
if repo . empty?
2014-05-02 13:05:08 +00:00
print '-'
else
2016-04-18 14:42:26 +00:00
size = repo . size
2014-05-02 13:05:08 +00:00
print '.'
2016-04-18 14:42:26 +00:00
execute ( " UPDATE projects SET repository_size = #{ size } WHERE id = #{ id } " )
2014-05-02 13:05:08 +00:00
end
2016-04-18 14:42:26 +00:00
rescue = > e
puts " \n Failed to update project #{ id } : #{ e } "
2014-05-02 13:05:08 +00:00
end
end
2016-04-18 14:42:26 +00:00
puts " \n Done "
2014-05-02 13:05:08 +00:00
end
def down
end
end