2012-06-22 2 views
1

모든 모듈과 함께 노드 응용 프로그램을 0.4에서 0.6으로 업그레이드하려고합니다. 나는 모든 것이 올바른있어 생각하지만, MongoHQ 반환 : 모든 찾을 수/별개의 호출에Heroku에서 MongoHQ "db assertion failure"가 발생했습니다.

db assertion failure 

(연결 오류없이 간다)

다음

내 package.json, 나는 하나에 모든 모듈을 고정 한 것 왜냐하면 처음에는 지역과 Heroku 사이에 약간의 차이점이 있었기 때문입니다. 내가 스키마를 정의하는 몽구스를 사용하고

{ "name": "expensesspreadsheet" 
, "version": "0.0.1" 
, "engines": 
    { "node" : "0.6.18" 
    , "npm" : "1.1.9" 
    } 
, "main": "server.js" 
, "dependencies": 
    { "ejs":    "0.7.1" 
    , "ejs-ext":   "0.1.1" 
    , "express":   "2.5.10" 
    , "railway":   "0.2.17-pre3" 
    , "jugglingdb":  "0.1.10" 
    , "yaml":   "0.2.3" 
    , "coffee-script": "1.3.3" 
    , "mime":   "1.2.5" 
    , "qs":    "0.5.0" 
    , "mongoose":  "2.7.0" 
    , "mongodb":   "1.0.2" 
    , "connect-mongodb": "1.1.4" 
    , "connect-auth": "0.5.2" 
    , "moment" :   "1.6.2" 
    , "connect-heroku-redis" : "0.1.5" 
    , "node-markdown" : "0.1.0" 
    , "recaptcha" :  "1.1.0" 
    , "sendgrid":  "0.2.1" 
    } 
, "scripts": 
    { "test": "nodeunit test/*/*" 
    } 
} 

: 지금 유일한 차이점은 내가 노드 0.6.19 지역을 실행하고있어 Heroku가이 0.6.18 실행하는 것입니다. MongoHQ에 연결하면 잘 작동합니다 (콜백에 오류가 없음). 그 코드를보고 싶다면 알려주지 만 몽구스 사이트에서는 거의 똑바로되어 있습니다.

그러나 위에서 설명한 것처럼 실제로 모든 데이터를 찾으려고 할 때마다이 비정상적인 오류가 발생합니다.

나는 이미 데이터베이스에 수동으로 연결하고 쿼리를 실행했습니다. 제대로 작동합니다. 내 로컬 환경을 mongohq에 연결했습니다 : 정상적으로 작동합니다.

이 모든 여전히 몽구스 2.3.13 및 MongoDB를 드라이버 0.9.6-7

그래서 내 질문에 노드 0.4에서 작동 :

  • 어느 한이 "dB의 주장을 디버깅하는 방법을 알고 있나요 실패 "오류가 발생 했습니까?
  • 다른 아이디어가 무엇이 있을까요?
+0

그동안 새로운 MongoHQ 인스턴스로 응용 프로그램의 새로운 복사본을 만들었습니다. 그것은 완벽하게 작동했습니다. 새로운 앱을 이전 MongoHQ URL로 지정하자 마자 동일한 "db assertion failure"메시지가 나타납니다. – Peter

답변

0

MongoHQ 지원을 통해이를 조사한 결과 인증 문제로 판명되었습니다.

Heroku에서 제공 한 MongoHQ URL이 MongoHQ의 암호와 일치하지 않습니다.

이전 버전의 응용 프로그램에서는 수동으로 생성 된 URL을 사용하여 왜 그 URL이 작동하는지 설명합니다.

어떻게 알았습니까? MongoDB 로그를 보면 명확한 인증 오류가있었습니다. 슬프게도 반환 된 JSON에는 추가 세부 정보없이 일반적인 "db assertion failure"메시지 만 포함되었습니다.

+0

좋은 팁; 몽고 로그를보고! – renatoargh