我有一个自定义的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"
但是当我签入控制台时,它只为默认租户设定了种子,我如何为所有tenannts设定种子?
发布于 2019-11-22 03:48:46
我知道这是几个月前的事了,但我想我会对未来的人有所帮助。
对于公寓,为了确保租户在区块之后切换回公共状态,更清晰的方法是执行以下操作:
Apartment::Tenant.switch(tenant.name) do
#Your code in this block.
end确保它切换回来是很重要的,因为如果不这样做,您最终可能会在错误的租户上运行代码。
如果您按照上面的建议进行操作,那么租户将保持选中状态,直到您再次切换它。如果下一次切换失败,它将停留在当前租户上,并在错误的DB上执行代码。
https://stackoverflow.com/questions/55147943
复制相似问题