mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 12:12:26 +08:00
DEV: Use filesystem-based SchemaCache in development (#12901)
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.
This commit is contained in:
parent
ed818a4a19
commit
ad8c7714c8
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -36,6 +36,7 @@ config/discourse.conf
|
||||||
/db/*.sqlite3
|
/db/*.sqlite3
|
||||||
/db/structure.sql
|
/db/structure.sql
|
||||||
/db/schema.rb
|
/db/schema.rb
|
||||||
|
/db/schema_cache.yml
|
||||||
|
|
||||||
# Ignore all logfiles and tempfiles.
|
# Ignore all logfiles and tempfiles.
|
||||||
/log/*.log
|
/log/*.log
|
||||||
|
|
|
@ -235,6 +235,9 @@ module Discourse
|
||||||
# see: http://stackoverflow.com/questions/11894180/how-does-one-correctly-add-custom-sql-dml-in-migrations/11894420#11894420
|
# see: http://stackoverflow.com/questions/11894180/how-does-one-correctly-add-custom-sql-dml-in-migrations/11894420#11894420
|
||||||
config.active_record.schema_format = :sql
|
config.active_record.schema_format = :sql
|
||||||
|
|
||||||
|
# We use this in development-mode only (see development.rb)
|
||||||
|
config.active_record.use_schema_cache_dump = false
|
||||||
|
|
||||||
# per https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
|
# per https://www.owasp.org/index.php/Password_Storage_Cheat_Sheet
|
||||||
config.pbkdf2_iterations = 64000
|
config.pbkdf2_iterations = 64000
|
||||||
config.pbkdf2_algorithm = "sha256"
|
config.pbkdf2_algorithm = "sha256"
|
||||||
|
|
|
@ -12,6 +12,9 @@ Discourse::Application.configure do
|
||||||
# Log error messages when you accidentally call methods on nil.
|
# Log error messages when you accidentally call methods on nil.
|
||||||
config.eager_load = false
|
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
|
# Show full error reports and disable caching
|
||||||
config.consider_all_requests_local = true
|
config.consider_all_requests_local = true
|
||||||
config.action_controller.perform_caching = false
|
config.action_controller.perform_caching = false
|
||||||
|
|
|
@ -221,6 +221,10 @@ task 'db:migrate' => ['load_config', 'environment', 'set_locale'] do |_, args|
|
||||||
SeedFu.quiet = true
|
SeedFu.quiet = true
|
||||||
SeedFu.seed(SeedHelper.paths, SeedHelper.filter)
|
SeedFu.seed(SeedHelper.paths, SeedHelper.filter)
|
||||||
|
|
||||||
|
if Rails.env.development?
|
||||||
|
Rake::Task['db:schema:cache:dump'].invoke
|
||||||
|
end
|
||||||
|
|
||||||
if !Discourse.skip_post_deployment_migrations? && ENV['SKIP_OPTIMIZE_ICONS'] != '1'
|
if !Discourse.skip_post_deployment_migrations? && ENV['SKIP_OPTIMIZE_ICONS'] != '1'
|
||||||
SiteIconManager.ensure_optimized!
|
SiteIconManager.ensure_optimized!
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user