mirror of
https://github.com/discourse/discourse.git
synced 2025-01-23 17:57:32 +08:00
ad8c7714c8
In development we regularly restart/reload Rails, which wipes out the schema cache. This then has to be regenerated using DDL queries on the database. Instead, we can make use of the `rake db:schema:cache:dump` command. This will dump the schema cache to a YAML file, and then load it when needed. This is significantly faster than rebuilding the cache from DDL queries every time.
114 lines
3.4 KiB
Ruby
114 lines
3.4 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
Discourse::Application.configure do
|
|
# Settings specified here will take precedence over those in config/application.rb
|
|
|
|
# In the development environment your application's code is reloaded on
|
|
# every request. This slows down response time but is perfect for development
|
|
# since you don't have to restart the web server when you make code changes.
|
|
config.cache_classes = false
|
|
config.file_watcher = ActiveSupport::EventedFileUpdateChecker
|
|
|
|
# Log error messages when you accidentally call methods on nil.
|
|
config.eager_load = false
|
|
|
|
# Use the schema_cache.yml file generated during db:migrate (via db:schema:cache:dump)
|
|
config.active_record.use_schema_cache_dump = true
|
|
|
|
# Show full error reports and disable caching
|
|
config.consider_all_requests_local = true
|
|
config.action_controller.perform_caching = false
|
|
|
|
config.action_controller.asset_host = GlobalSetting.cdn_url
|
|
|
|
# Print deprecation notices to the Rails logger
|
|
config.active_support.deprecation = :log
|
|
|
|
# Do not compress assets
|
|
config.assets.compress = false
|
|
|
|
# Don't Digest assets, makes debugging uglier
|
|
config.assets.digest = false
|
|
|
|
config.assets.debug = false
|
|
|
|
config.public_file_server.headers = {
|
|
'Access-Control-Allow-Origin' => '*'
|
|
}
|
|
|
|
# Raise an error on page load if there are pending migrations
|
|
config.active_record.migration_error = :page_load
|
|
config.watchable_dirs['lib'] = [:rb]
|
|
|
|
config.handlebars.precompile = true
|
|
|
|
# we recommend you use mailcatcher https://github.com/sj26/mailcatcher
|
|
config.action_mailer.smtp_settings = { address: "localhost", port: 1025 }
|
|
|
|
config.action_mailer.raise_delivery_errors = true
|
|
|
|
config.log_level = ENV['DISCOURSE_DEV_LOG_LEVEL'] if ENV['DISCOURSE_DEV_LOG_LEVEL']
|
|
|
|
if ENV['RAILS_VERBOSE_QUERY_LOGS'] == "1"
|
|
config.active_record.verbose_query_logs = true
|
|
end
|
|
|
|
if defined?(BetterErrors)
|
|
BetterErrors::Middleware.allow_ip! ENV['TRUSTED_IP'] if ENV['TRUSTED_IP']
|
|
|
|
if defined?(Unicorn) && ENV["UNICORN_WORKERS"].to_i != 1
|
|
# BetterErrors doesn't work with multiple unicorn workers. Disable it to avoid confusion
|
|
Rails.configuration.middleware.delete BetterErrors::Middleware
|
|
end
|
|
end
|
|
|
|
if !ENV["DISABLE_MINI_PROFILER"]
|
|
config.load_mini_profiler = true
|
|
end
|
|
|
|
if hosts = ENV['DISCOURSE_DEV_HOSTS']
|
|
config.hosts.concat(hosts.split(","))
|
|
end
|
|
|
|
require 'middleware/turbo_dev'
|
|
config.middleware.insert 0, Middleware::TurboDev
|
|
require 'middleware/missing_avatars'
|
|
config.middleware.insert 1, Middleware::MissingAvatars
|
|
|
|
config.enable_anon_caching = false
|
|
if RUBY_ENGINE == "ruby"
|
|
require 'rbtrace'
|
|
end
|
|
|
|
if emails = GlobalSetting.developer_emails
|
|
config.developer_emails = emails.split(",").map(&:downcase).map(&:strip)
|
|
end
|
|
|
|
if defined?(Rails::Server) || defined?(Puma) || defined?(Unicorn)
|
|
require 'stylesheet/watcher'
|
|
STDERR.puts "Starting CSS change watcher"
|
|
@watcher = Stylesheet::Watcher.watch
|
|
end
|
|
|
|
config.after_initialize do
|
|
if ENV["RAILS_COLORIZE_LOGGING"] == "1"
|
|
config.colorize_logging = true
|
|
end
|
|
|
|
if ENV["RAILS_VERBOSE_QUERY_LOGS"] == "1"
|
|
ActiveRecord::LogSubscriber.backtrace_cleaner.add_silencer do |line|
|
|
line =~ /lib\/freedom_patches/
|
|
end
|
|
end
|
|
|
|
if ENV["RAILS_DISABLE_ACTIVERECORD_LOGS"] == "1"
|
|
ActiveRecord::Base.logger = nil
|
|
end
|
|
|
|
if ENV['BULLET']
|
|
Bullet.enable = true
|
|
Bullet.rails_logger = true
|
|
end
|
|
end
|
|
end
|