discourse/config/initializers/005-site_settings.rb
Guo Xiang Tan d2ac7a9476 Partially revert 4e89d3f778.
* SiteSetting uses DistributedCache which depends on MessageBus.
  Therefore, we need to initialize MessageBus first.
2017-10-12 15:15:24 +08:00

31 lines
915 B
Ruby

# load up git version into memory
# this way if it changes underneath we still have
# the original version
Discourse.git_version
reload_settings = lambda {
RailsMultisite::ConnectionManagement.each_connection do
begin
SiteSetting.refresh!
unless String === SiteSetting.push_api_secret_key && SiteSetting.push_api_secret_key.length == 32
SiteSetting.push_api_secret_key = SecureRandom.hex
end
rescue ActiveRecord::StatementInvalid
# This will happen when migrating a new database
rescue => e
STDERR.puts "URGENT: Failed to initialize site #{RailsMultisite::ConnectionManagement.current_db}:"\
"#{e.message}\n#{e.backtrace.join("\n")}"
# the show must go on, don't stop startup if multisite fails
end
end
}
reload_settings.call
if !Rails.configuration.cache_classes
ActiveSupport::Reloader.to_prepare do
reload_settings.call
end
end