mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
DEV: Make setting up of multisite DB in test env clearer.
This commit is contained in:
@@ -19,7 +19,7 @@ development:
|
|||||||
test:
|
test:
|
||||||
prepared_statements: false
|
prepared_statements: false
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
database: "discourse_test<%= ENV['MULTISITE'] ? '_' + ENV['MULTISITE'] : '' %>"
|
database: <%= ENV["RAILS_DB"] ? ENV["RAILS_DB"] : "discourse_test" %>
|
||||||
min_messages: warning
|
min_messages: warning
|
||||||
pool: 5
|
pool: 5
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
|
|||||||
@@ -7,32 +7,38 @@ task 'set_locale' do
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
task 'db:environment:set', [:multisite] => [:load_config] do |_, args|
|
module MultisiteTestHelpers
|
||||||
if Rails.env.test? && !args[:multisite]
|
def self.load_multisite?
|
||||||
system("MULTISITE=multisite rails db:environment:set['true'] RAILS_ENV=test")
|
Rails.env.test? && !ENV["RAILS_DB"] && !ENV["SKIP_MULTISITE"]
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
task 'db:create', [:multisite] => [:load_config] do |_, args|
|
task 'db:environment:set' => [:load_config] do |_, args|
|
||||||
if Rails.env.test? && !args[:multisite]
|
if MultisiteTestHelpers.load_multisite?
|
||||||
system("MULTISITE=multisite rails db:create['true']")
|
system("RAILS_ENV=test RAILS_DB=discourse_test_multisite rake db:environment:set")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
task 'db:drop', [:multisite] => [:load_config] do |_, args|
|
task 'db:create' => [:load_config] do |_, args|
|
||||||
if Rails.env.test? && !args[:multisite]
|
if MultisiteTestHelpers.load_multisite?
|
||||||
system("MULTISITE=multisite rails db:drop['true']")
|
system("RAILS_DB=discourse_test_multisite rake db:create")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
# we need to run seed_fu every time we run rails db:migrate
|
task 'db:drop' => [:load_config] do |_, args|
|
||||||
task 'db:migrate', [:multisite] => ['environment', 'set_locale'] do |_, args|
|
if MultisiteTestHelpers.load_multisite?
|
||||||
|
system("RAILS_DB=discourse_test_multisite rake db:drop")
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
# we need to run seed_fu every time we run rake db:migrate
|
||||||
|
task 'db:migrate' => ['environment', 'set_locale'] do |_, args|
|
||||||
SeedFu.seed(DiscoursePluginRegistry.seed_paths)
|
SeedFu.seed(DiscoursePluginRegistry.seed_paths)
|
||||||
|
|
||||||
if Rails.env.test? && !args[:multisite] && !ENV["SKIP_MULTISITE"]
|
if MultisiteTestHelpers.load_multisite?
|
||||||
system("rails db:schema:dump")
|
system("rake db:schema:dump")
|
||||||
system("MULTISITE=multisite rails db:schema:load")
|
system("RAILS_DB=discourse_test_multisite rake db:schema:load")
|
||||||
system("RAILS_DB=discourse_test_multisite rails db:migrate['multisite']")
|
system("RAILS_DB=discourse_test_multisite rake db:migrate")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -100,6 +100,9 @@ task 'docker:test' do
|
|||||||
@pg_pid = Process.spawn("#{@postgres_bin}postmaster -D tmp/test_data/pg")
|
@pg_pid = Process.spawn("#{@postgres_bin}postmaster -D tmp/test_data/pg")
|
||||||
|
|
||||||
ENV["RAILS_ENV"] = "test"
|
ENV["RAILS_ENV"] = "test"
|
||||||
|
# this shaves all the creation of the multisite db off
|
||||||
|
# for js tests
|
||||||
|
ENV["SKIP_MULTISITE"] = "1" if ENV["JS_ONLY"]
|
||||||
|
|
||||||
@good &&= run_or_fail("bundle exec rake db:create")
|
@good &&= run_or_fail("bundle exec rake db:create")
|
||||||
|
|
||||||
@@ -107,10 +110,6 @@ task 'docker:test' do
|
|||||||
@good &&= run_or_fail("bundle exec rake plugin:install_all_official")
|
@good &&= run_or_fail("bundle exec rake plugin:install_all_official")
|
||||||
end
|
end
|
||||||
|
|
||||||
# this shaves all the creation of the multisite db off
|
|
||||||
# for js tests
|
|
||||||
ENV["SKIP_MULTISITE"] = "1" if ENV["JS_ONLY"]
|
|
||||||
|
|
||||||
if ENV["SKIP_PLUGINS"]
|
if ENV["SKIP_PLUGINS"]
|
||||||
@good &&= run_or_fail("bundle exec rake db:migrate")
|
@good &&= run_or_fail("bundle exec rake db:migrate")
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user