【发布时间】:2019-03-13 17:28:14
【问题描述】:
我有一个自定义 rake 任务
namespace :abc do
desc "seeds abc to a database" do
task seed_abc: :environment do
Tenant.find_each do |tenant|
puts "Running task for tenant#{tenant.name}"
Dir[File.join(Rails.root, 'db', 'seeds', '*.rb')].sort.each do |filename|
p "Seeding #{filename}"
load(filename) if File.exist?(filename)
end
end
end
end
当我运行 rake 任务时,它只在默认租户中播种,但在播种时我可以看到
Running task for tenant abc
"Seeding /path...../path/filename.rb"
"Seeding /path...../path/filename.rb"
Running task for tenant xyz
"Seeding /path...../path/filename.rb"
"Seeding /path...../path/filename.rb"
Running task for tenant 123
"Seeding /path...../path/filename.rb"
"Seeding /path...../path/filename.rb"
但是当我签入控制台时,它只为默认租户播种, 我如何为所有租户播种?
【问题讨论】:
-
修复了这个。只需在循环中添加
Apartment::Tenant.switch!(tenant.name)即可。
标签: ruby-on-rails multi-tenant rake-task apartment-gem