2016-07-01 2 views
1

2 개의 서버 인스턴스 (다른 포트, 다른 PID)를 실행중인 레일 앱이 있습니다.각각 다른 데이터베이스를 사용하는 동일한 Rails 앱의 다른 인스턴스

rails s -p 8081 -P 12345 
rails s -p 8082 -P 54321 

그러나, 나는 다른 MongoDB를 데이터베이스에 연결하기 위해 그들 각각을 부탁합니다 (예 : 각각 db12345db54321을).

문제는 이것이 가능한지, 그렇다면 내 mongoid.yml 구성 파일에 지정하는 방법을 모른다는 것입니다.

나를 db12345 데이터베이스를 사용할 수 있도록 내 mongoid.yml 파일의 각각의 섹션은 현재 다음과 같습니다

development: 
    options: 
    raise_not_found_error: false 
    sessions: 
    default: 
     database: **db12345** 
     hosts: 
     - localhost:27017 
     options: 
     max_retries: 30 
     retry_interval: 1 
     timeout: 15 
     refresh_interval: 10 

내가의 각 인스턴스를 연결하는 방법을 찾는에 문제가 있어요 동일한 레일 앱을 사용해야하는 (다른) 데이터베이스에. 이것도 mongoid.yml에서 처리 할 예정입니까?

감사합니다.

답변

1

환경 변수를 통해 제어 할 수 있습니다. 당신의 애플리케이션은 이러한 방식으로 시작했습니다 :

DBNAME=db12345 rails s -p 8081 -P 12345 
DBNAME=db54321 rails s -p 8082 -P 54321 

그럼 그냥 제정신 기본값은 mongoid.yml이 VAR를 참조하십시오

sessions: 
    default: 
     database: <%= ENV['DBNAME'] || 'db12345' %> 
+0

이 정확히 내가 무엇을 찾고 있었다! 정말 고맙습니다! 이것과 관련된 dba stackexchange 질문도 있습니다. 나는 이것이 어떻게 작동하는지 모르지만, 원한다면이 질문에 대답 할 수 있습니다. 링크는 다음과 같습니다. https://dba.stackexchange.com/questions/142445/different-instances-of-the-same-rails-app-each-using-a-different-mongo-database –

+1

@MT : crossposting은 권장하지 않습니다. stackexchange에. 하지만이 질문은 유효한 DBA 항목처럼 보입니다. 따라서 응답을 게시 할 것입니다. –

+0

감사합니다. 알아 둘만한! 다른 사람들이저기서 대답을 찾고 있을지도 모른다고 생각했습니다. 어쨌든 도움을 주셔서 감사합니다! –

관련 문제