FIX: site settings loading default values when no db
This fixes a condition where an intermittent db connection could cause invalid site settings to be stored It also removes a catch all we had. Somewhere around Rails 5 `db:create` started wanting full environment this is a problem for Discourse since it needs to boot up data from the db. This removes the catch all and surgically adds a db / redis bypass to db:create task.
This commit is contained in:
+12
-1
@@ -21,12 +21,23 @@ task 'db:environment:set' => [:load_config] do |_, args|
|
||||
end
|
||||
end
|
||||
|
||||
task 'db:create' => [:load_config] do |_, args|
|
||||
task 'db:force_skip_persist' do
|
||||
GlobalSetting.skip_db = true
|
||||
GlobalSetting.skip_redis = true
|
||||
end
|
||||
|
||||
task 'db:create' do |_, args|
|
||||
if MultisiteTestHelpers.load_multisite?
|
||||
system("RAILS_DB=discourse_test_multisite rake db:create")
|
||||
end
|
||||
end
|
||||
|
||||
begin
|
||||
reqs = Rake::Task['db:create'].prerequisites.map(&:to_sym)
|
||||
Rake::Task['db:create'].clear_prerequisites
|
||||
Rake::Task['db:create'].enhance(["db:force_skip_persist"] + reqs)
|
||||
end
|
||||
|
||||
task 'db:drop' => [:load_config] do |_, args|
|
||||
if MultisiteTestHelpers.load_multisite?
|
||||
system("RAILS_DB=discourse_test_multisite rake db:drop")
|
||||
|
||||
Reference in New Issue
Block a user