2012-09-27 2 views
3

몽고 이드 2.x에서 Mongoid.database.connection.close을 실행하여 데이터베이스 연결을 재설정 할 수 있습니다. 이 특정 API는 Mongoid3에서 더 이상 사용할 수 없으며 연결을 재설정하는 새로운 방법은 무엇입니까?몽고이 3 데이터베이스 연결을 재설정하는 방법

동기 부여 : 진행중인 쿼리 (ctrl-c)를 중단하면 연결이 끊어집니다. 이후의 모든 쿼리는 중단됩니다. 또한 타임 아웃과 같은 오류는 동일한 작업을 수행합니다 (http://simple10.com/rescuing-from-racktimeout-to-close-mongodb-connection 참조).

+0

어쩌면 이것이 당신이 찾고있는 것일까요? http://rdoc.info/github/mongoid/moped/Moped/Connection#disconnect-instance_method –

답변

4

나는 해결책을 발견! 당신 ctrl-c 콘솔에서 쿼리를 중단 할 경우

Mongoid::Sessions.default.disconnect 

또는

Model.collection.database.session.disconnect 

가 제대로 연결을 재설정합니다.

+0

쿨, 고마워! – ccurtisj

0

몽고이 3의 대체 mongo 드라이버 인 Moped는 실제로 연결을 자동으로 다시 시도하는 것으로 밝혀졌습니다.

https://github.com/mongoid/moped/blob/master/lib/moped/node.rb#L115

+0

흠, 만약 콘솔에서 mongoid 쿼리를'ctrl-c'하면 굳이 되돌릴 수없는 것 같습니다. 콘솔을 종료하고 다시 시작해야합니다. 이 문제에 대한 해결책을 찾았습니까? –

+0

mongoid 2.x를 사용 중이라면'Mongoid.database.connection.close'를 호출하여 다시 연결하십시오. – ccurtisj

+0

하지만 Moped Node 인스턴스에 어떻게 액세스합니까? –