# 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