2017-09-28 15 views
0

아파트 보석과 레일로 멀티 테넌시 앱을 만들었습니다. 5. 성공적으로 새 임차인을 만들었지 만, 나는 그것을 파종하고 싶습니다. 씨앗 파일을 실행할 때 씨앗이이 새 테넌트 (Seeding tenant_name 세입자)에 대해 실행되었음을 나타내지 만 공용 스키마에서만 데이터가 없습니다. PostgreSQL db, public 및 새 스키마에서 생성 된 2 개의 스키마를 볼 수 있지만 공용 스키마 만 채 웁니다. 왜?Rails Multi Tenancy 시딩 문제

seeds.rb에 퍼팅 시도 :

Apartment::Tenant.switch!('tenant_name') 

그리고 :

if Apartment::Tenant.current == "tenant_name"... 

하지만 좋은.

누구나?

미리 감사드립니다.

답변

0

귀하의 접근 방식은 정확하지만이 있는지 확인하십시오

  1. 가 PG에 schema_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 

응원을!