mirror of
https://github.com/discourse/discourse.git
synced 2024-11-22 11:23:25 +08:00
DEV: correct parallel specs rake tasks
This used to work due to side effects. `rake parallel:migrate` used to work very inconsistently and would only migrate some of the databases. This introduces the recommended change to db.yml so the correct database is found based off TEST_ENV_NUMBER if for some reason we did not set it using RAILS_DB Also avoids a bunch of schema dumping which is not needed when migrating parallel specs DB number 1 is very odd cause for whatever reason parallel spec is not setting it.
This commit is contained in:
parent
f04f6cbf01
commit
412e1ebbe2
|
@ -16,10 +16,23 @@ development:
|
||||||
# Warning: The database defined as "test" will be erased and
|
# Warning: The database defined as "test" will be erased and
|
||||||
# re-generated from your development database when you run "rake".
|
# re-generated from your development database when you run "rake".
|
||||||
# Do not set this db to the same as development or production.
|
# Do not set this db to the same as development or production.
|
||||||
|
|
||||||
|
<%
|
||||||
|
test_db = ENV["RAILS_DB"]
|
||||||
|
if !test_db.present?
|
||||||
|
test_db = "discourse_test"
|
||||||
|
|
||||||
|
if num = ENV["TEST_ENV_NUMBER"]
|
||||||
|
num = num.presence || "1"
|
||||||
|
test_db += "_#{num}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
%>
|
||||||
|
|
||||||
test:
|
test:
|
||||||
prepared_statements: false
|
prepared_statements: false
|
||||||
adapter: postgresql
|
adapter: postgresql
|
||||||
database: <%= ENV["RAILS_DB"] ? ENV["RAILS_DB"] : "discourse_test" %>
|
database: <%= test_db %>
|
||||||
min_messages: warning
|
min_messages: warning
|
||||||
pool: 5
|
pool: 5
|
||||||
timeout: 5000
|
timeout: 5000
|
||||||
|
|
|
@ -9,6 +9,8 @@ pre-commit:
|
||||||
run: yarn eslint --ext .es6 -f compact {staged_files}
|
run: yarn eslint --ext .es6 -f compact {staged_files}
|
||||||
yaml-syntax:
|
yaml-syntax:
|
||||||
glob: "*.{yaml,yml}"
|
glob: "*.{yaml,yml}"
|
||||||
|
# database.yml is an erb file not a yaml file
|
||||||
|
exclude: "database.yml"
|
||||||
run: bundle exec yaml-lint {staged_files}
|
run: bundle exec yaml-lint {staged_files}
|
||||||
|
|
||||||
commands: &commands
|
commands: &commands
|
||||||
|
|
|
@ -68,20 +68,23 @@ end
|
||||||
|
|
||||||
# we need to run seed_fu every time we run rake db:migrate
|
# we need to run seed_fu every time we run rake db:migrate
|
||||||
task 'db:migrate' => ['load_config', 'environment', 'set_locale'] do |_, args|
|
task 'db:migrate' => ['load_config', 'environment', 'set_locale'] do |_, args|
|
||||||
|
|
||||||
ActiveRecord::Tasks::DatabaseTasks.migrate
|
ActiveRecord::Tasks::DatabaseTasks.migrate
|
||||||
|
|
||||||
Rake::Task['db:_dump'].invoke
|
if !Discourse.is_parallel_test?
|
||||||
|
Rake::Task['db:_dump'].invoke
|
||||||
|
end
|
||||||
|
|
||||||
SeedFu.seed(DiscoursePluginRegistry.seed_paths)
|
SeedFu.seed(DiscoursePluginRegistry.seed_paths)
|
||||||
|
|
||||||
unless Discourse.skip_post_deployment_migrations?
|
if !Discourse.skip_post_deployment_migrations?
|
||||||
puts
|
puts
|
||||||
print "Optimizing site icons... "
|
print "Optimizing site icons... "
|
||||||
SiteIconManager.ensure_optimized!
|
SiteIconManager.ensure_optimized!
|
||||||
puts "Done"
|
puts "Done"
|
||||||
end
|
end
|
||||||
|
|
||||||
if MultisiteTestHelpers.load_multisite?
|
if !Discourse.is_parallel_test? && MultisiteTestHelpers.load_multisite?
|
||||||
system("RAILS_DB=discourse_test_multisite rake db:migrate")
|
system("RAILS_DB=discourse_test_multisite rake db:migrate")
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue
Block a user