discourse/config/initializers/005-site_settings.rb
Daniel Waterworth 4c9ed7bd85 FIX: Fix rake db:create after zeitwerk changes
Post-zeitwerk, rails has deprecated autoloading modules during
initialization and forces all autoloaded modules to be reloaded after
initialization.

Requiring the file explicitly prevents autoloading and therefore
prevents the state on SiteSetting being trashed which was causing the
problem here.
2019-10-08 12:22:34 +01:00

40 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
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