如何在使用Apartment gem进行范围界定的多租户应用中播种新租户?
我在grain.rb中添加了以下内容,但它似乎与公寓无关:
tenants = Tenant.create([
{
name: 'User1',
domain: 'user1'
},
{
name: 'User2',
domain: 'user2'
}
])
即使数据库是空白的,seeds.rb也会尝试创建两次架构,并在rake db:seed
执行此错误时失败:
Apartment::TenantExists: The schema user1 already exists.
答案 0 :(得分:4)
Rails rake为您尝试创建的每个租户/模式运行任务。因此,首先检查当前架构是否为公共架构,以运行您的创建或种子任务。
这样的事情会发生。
if Apartment::Tenant.current == 'public'
Apartment::Tenant.create('tenant1')
Apartment::Tenant.create('tenant2')
end