aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGannon McGibbon <gannon.mcgibbon@gmail.com>2019-01-16 19:02:23 -0500
committerGannon McGibbon <gannon.mcgibbon@gmail.com>2019-01-17 01:08:15 -0500
commit66cc0e768fb092dbcd12feb3387c2a22e4cbeb37 (patch)
treebb5096dacb183103c5b12eec8d94e2ec5f442379
parent90536ebfb3f0ca6971bc3ea4e43f20b8e977539b (diff)
downloadrails-66cc0e768fb092dbcd12feb3387c2a22e4cbeb37.tar.gz
rails-66cc0e768fb092dbcd12feb3387c2a22e4cbeb37.tar.bz2
rails-66cc0e768fb092dbcd12feb3387c2a22e4cbeb37.zip
Seed database with inline ActiveJob job adapter
-rw-r--r--railties/CHANGELOG.md4
-rw-r--r--railties/lib/rails/engine.rb14
-rw-r--r--railties/test/railties/engine_test.rb12
3 files changed, 29 insertions, 1 deletions
diff --git a/railties/CHANGELOG.md b/railties/CHANGELOG.md
index 9c7e958b7c..1d37707c62 100644
--- a/railties/CHANGELOG.md
+++ b/railties/CHANGELOG.md
@@ -1,3 +1,7 @@
+* Seed database with inline ActiveJob job adapter.
+
+ *Gannon McGibbon*
+
* Add `rails db:system:change` command for changing databases.
```
diff --git a/railties/lib/rails/engine.rb b/railties/lib/rails/engine.rb
index 6a13a84108..f768c30db0 100644
--- a/railties/lib/rails/engine.rb
+++ b/railties/lib/rails/engine.rb
@@ -548,7 +548,7 @@ module Rails
# Blog::Engine.load_seed
def load_seed
seed_file = paths["db/seeds.rb"].existent.first
- load(seed_file) if seed_file
+ with_inline_jobs { load(seed_file) } if seed_file
end
# Add configured load paths to Ruby's load path, and remove duplicate entries.
@@ -658,6 +658,18 @@ module Rails
end
end
+ def with_inline_jobs
+ queue_adapter = config.active_job.queue_adapter
+ ActiveSupport.on_load(:active_job) do
+ self.queue_adapter = :inline
+ end
+ yield
+ ensure
+ ActiveSupport.on_load(:active_job) do
+ self.queue_adapter = queue_adapter
+ end
+ end
+
def has_migrations?
paths["db/migrate"].existent.any?
end
diff --git a/railties/test/railties/engine_test.rb b/railties/test/railties/engine_test.rb
index e62e8c8b44..508367212b 100644
--- a/railties/test/railties/engine_test.rb
+++ b/railties/test/railties/engine_test.rb
@@ -879,6 +879,18 @@ YAML
assert Bukkits::Engine.config.bukkits_seeds_loaded
end
+ test "jobs are ran inline while loading seeds" do
+ app_file "db/seeds.rb", <<-RUBY
+ Rails.application.config.seed_queue_adapter = ActiveJob::Base.queue_adapter
+ RUBY
+
+ boot_rails
+ Rails.application.load_seed
+
+ assert_instance_of ActiveJob::QueueAdapters::InlineAdapter, Rails.application.config.seed_queue_adapter
+ assert_instance_of ActiveJob::QueueAdapters::AsyncAdapter, ActiveJob::Base.queue_adapter
+ end
+
test "skips nonexistent seed data" do
FileUtils.rm "#{app_path}/db/seeds.rb"
boot_rails