Class: Gitlab::Seeder
- Inherits:
-
Object
show all
- Extended by:
- ActionView::Helpers::NumberHelper
- Defined in:
- lib/gitlab/seeder.rb
Defined Under Namespace
Modules: NamespaceSeed, ProjectSeed, UserSeed
Constant Summary
collapse
- MASS_INSERT_PREFIX =
'mass_insert'
- MASS_INSERT_PROJECT_START =
"#{MASS_INSERT_PREFIX}_project_"
- MASS_INSERT_GROUP_START =
"#{MASS_INSERT_PREFIX}_group_"
- MASS_INSERT_USER_START =
"#{MASS_INSERT_PREFIX}_user_"
- REPORTED_USER_START =
'reported_user_'
- ESTIMATED_INSERT_PER_MINUTE =
250_000
- MASS_INSERT_ENV =
'MASS_INSERT'
Class Method Summary
collapse
Class Method Details
.estimated_time_message(size) ⇒ Object
69
70
71
72
73
74
75
76
77
78
|
# File 'lib/gitlab/seeder.rb', line 69
def self.estimated_time_message(size)
estimated_minutes = (size.to_f / ESTIMATED_INSERT_PER_MINUTE).round
humanized_minutes = 'minute'.pluralize(estimated_minutes)
if estimated_minutes == 0
"Rough estimated time: less than a minute ⏰"
else
"Rough estimated time: #{estimated_minutes} #{humanized_minutes} ⏰"
end
end
|
.log_message(message) ⇒ Object
45
46
47
|
# File 'lib/gitlab/seeder.rb', line 45
def self.log_message(message)
puts "#{Time.current}: #{message}"
end
|
.quiet ⇒ Object
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/gitlab/seeder.rb', line 80
def self.quiet
Namespace.include(NamespaceSeed)
Project.include(ProjectSeed)
User.include(UserSeed)
old_perform_deliveries = ActionMailer::Base.perform_deliveries
ActionMailer::Base.perform_deliveries = false
SeedFu.quiet = true
without_database_logging do
without_statement_timeout do
without_new_note_notifications do
yield
end
end
end
puts "\nOK".color(:green)
ensure
SeedFu.quiet = false
ActionMailer::Base.perform_deliveries = old_perform_deliveries
end
|
.with_mass_insert(size, model) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
# File 'lib/gitlab/seeder.rb', line 49
def self.with_mass_insert(size, model)
humanized_model_name = model.is_a?(String) ? model : model.model_name.human.pluralize(size)
if !ENV[MASS_INSERT_ENV] && !ENV['CI']
puts "\nSkipping mass insertion for #{humanized_model_name}."
puts "Consider running the seed with #{MASS_INSERT_ENV}=1"
return
end
humanized_size = number_with_delimiter(size)
estimative = estimated_time_message(size)
puts "\nCreating #{humanized_size} #{humanized_model_name}."
puts estimative
yield
puts "\n#{number_with_delimiter(size)} #{humanized_model_name} created!"
end
|
.without_database_logging ⇒ Object
.without_gitaly_timeout ⇒ Object
.without_new_note_notifications ⇒ Object
.without_statement_timeout ⇒ Object