discourse/config/initializers/005-site_settings.rb
Krzysztof Kotlarek e10a74694a
FIX: deprecation warning - initialization autoloaded the constant (#12400)
Get rid of deprecation related to Zeitwerk autoloader.

Original PR was reverted because of multisite bug #12381 - thank you @davidtaylorhq for fixing it.

I added the last commit to fix that multisite problem.
2021-03-16 09:47:57 +11:00

42 lines
1.1 KiB
Ruby

# frozen_string_literal: true
# load up git version into memory
# this way if it changes underneath we still have
# the original version
Discourse.git_version
if GlobalSetting.skip_redis?
# Requiring this file explicitly prevents it from being autoloaded and so the
# provider attribute is not cleared
require File.expand_path('../../../app/models/site_setting', __FILE__)
require 'site_settings/local_process_provider'
Rails.cache = Discourse.cache
SiteSetting.provider = SiteSettings::LocalProcessProvider.new
return
end
Rails.application.reloader.to_prepare do
reload_settings = lambda {
RailsMultisite::ConnectionManagement.safe_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
end
end
}
reload_settings.call
if !Rails.configuration.cache_classes
ActiveSupport::Reloader.to_prepare do
reload_settings.call
end
end
end