如何在使用 Apartment gem 进行范围界定的 Multi-Tenancy 应用程序中播种新租户?
我将以下内容添加到 seeds.rb,但它似乎不适用于 apartment:
tenants = Tenant.create([
{
name: 'User1',
domain: 'user1'
},
{
name: 'User2',
domain: 'user2'
}
])
即使数据库是空白的,seeds.rb 也会尝试创建模式两次,但在我执行 rake db:seed
时失败并出现此错误:
Apartment::TenantExists: The schema user1 already exists.
Rails rake 为您尝试创建的每个租户/模式运行任务。因此,通过首先检查当前架构是否为公共(public)架构来运行您的创建或播种任务。
像这样的东西就可以了。
if Apartment::Tenant.current == 'public'
Apartment::Tenant.create('tenant1')
Apartment::Tenant.create('tenant2')
end
我是一名优秀的程序员,十分优秀!