我使用Apartment gem和rails 5创建了一个多租户应用程序。我成功创建了一个新租户,但我想要播种它。当我运行种子文件时,它表明种子已经为这个新租户(Seeding tenant_name tenant)运行,但是那里没有数据,只有公共模式。
我可以在PostgreSQL
db,public
和新的seeds.rb
上看到2个模式,但它只填充公共模式。为什么呢?
尝试穿上Apartment::Tenant.switch!('tenant_name')
:
if Apartment::Tenant.current == "tenant_name"...
和
Add expense - restructured group
Please complete the form below
josh
lifter
omar
Amount: 0
Description: expense
josh
lifter
omar
Amount: 0
Description: expense
josh
lifter
omar
Amount: 0
Description: expense
submit
但没有好处。
任何?
提前致谢!
答案 0 :(得分:1)
您的方法是正确的,但请确保这些:
schema_search_path
: 示例:database.yml
应如下所示:
default: &default
adapter: postgresql
schema_search_path: 'public,shared_extensions'
encoding: unicode
pool: 5
prepared_statements: false
development:
<<: *default
database: your_development_db
2。 对于schema
- 特定数据填充,在租户switch
块内运行语句:
在seed.rb
中,首先创建租户,然后像这样切换该租户:
Apartment::Tenant.switch('tenant_name') do
# Do all stuff here inside this block
# User.create(user_attributes) will create use only inside `tenant_name` schema
end
振作!