mirror of
https://github.com/discourse/discourse.git
synced 2024-11-23 06:49:14 +08:00
5cfe323445
What is this change required? I noticed that actions in `SidebarSectionsController` resulted in lots of N+1 queries problem and I wanted a solution to prevent such problems without having to write N+1 queries tests. I have also used strict loading for `SidebarSection` queries in performance sensitive spots. Note that in this commit, I have also set `config.active_record.action_on_strict_loading_violation = :log` for the production environment so that we have more visibility of potential N+1 queries problem in the logs. In development and test environment, we're sticking with the default of raising an error.
77 lines
2.6 KiB
Ruby
77 lines
2.6 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Discourse::Application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb
|
|
|
|
# Code is not reloaded between requests
|
|
config.cache_classes = true
|
|
config.eager_load = true
|
|
|
|
# Full error reports are disabled and caching is turned on
|
|
config.consider_all_requests_local = false
|
|
config.action_controller.perform_caching = true
|
|
|
|
# Disable Rails's static asset server (Apache or nginx will already do this)
|
|
config.public_file_server.enabled = GlobalSetting.serve_static_assets || false
|
|
|
|
config.assets.js_compressor = :uglifier
|
|
|
|
# stuff should be pre-compiled
|
|
config.assets.compile = false
|
|
|
|
# Generate digests for assets URLs
|
|
config.assets.digest = true
|
|
|
|
config.log_level = :info
|
|
|
|
if GlobalSetting.smtp_address
|
|
settings = {
|
|
address: GlobalSetting.smtp_address,
|
|
port: GlobalSetting.smtp_port,
|
|
domain: GlobalSetting.smtp_domain,
|
|
user_name: GlobalSetting.smtp_user_name,
|
|
password: GlobalSetting.smtp_password,
|
|
authentication: GlobalSetting.smtp_authentication,
|
|
enable_starttls_auto: GlobalSetting.smtp_enable_start_tls,
|
|
open_timeout: GlobalSetting.smtp_open_timeout,
|
|
read_timeout: GlobalSetting.smtp_read_timeout,
|
|
}
|
|
|
|
settings[
|
|
:openssl_verify_mode
|
|
] = GlobalSetting.smtp_openssl_verify_mode if GlobalSetting.smtp_openssl_verify_mode
|
|
|
|
settings[:tls] = true if GlobalSetting.smtp_force_tls
|
|
|
|
config.action_mailer.smtp_settings = settings.compact
|
|
else
|
|
config.action_mailer.delivery_method = :sendmail
|
|
config.action_mailer.sendmail_settings = { arguments: "-i" }
|
|
end
|
|
|
|
# Send deprecation notices to registered listeners
|
|
config.active_support.deprecation = :notify
|
|
|
|
# allows developers to use mini profiler
|
|
config.load_mini_profiler = GlobalSetting.load_mini_profiler
|
|
|
|
# Discourse strongly recommend you use a CDN.
|
|
# For origin pull cdns all you need to do is register an account and configure
|
|
config.action_controller.asset_host = GlobalSetting.cdn_url
|
|
|
|
# a comma delimited list of emails your devs have
|
|
# developers have god like rights and may impersonate anyone in the system
|
|
# normal admins may only impersonate other moderators (not admins)
|
|
if emails = GlobalSetting.developer_emails
|
|
config.developer_emails = emails.split(",").map(&:downcase).map(&:strip)
|
|
end
|
|
|
|
config.active_record.dump_schema_after_migration = false
|
|
|
|
if ENV["RAILS_LOG_TO_STDOUT"].present?
|
|
config.logger = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
|
|
end
|
|
|
|
config.active_record.action_on_strict_loading_violation = :log
|
|
end
|