Heroku上的MongoHQ“db断言失败”

时间:2012-06-22 16:32:01

标签: heroku mongoose mongohq

我正在尝试将我的Node应用程序与所有模块一起从0.4升级到0.6。我想我的一切都是正确的,但MongoHQ回归:

db assertion failure

在每个查找/不同的调用上(连接没有错误)

这是我的package.json,我已将所有模块修复为一个特定版本,因为我最初在本地和Heroku之间存在一些差异。现在唯一的区别是我正在运行Node 0.6.19 local和Heroku运行0.6.18:

{ "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/*/*"
  }
}

我正在使用Mongoose来定义架构。连接到MongoHQ工作正常(回调中没有错误)。如果您想查看该代码,请告诉我,但它非常标准,几乎直接来自Mongoose网站。

然而,如上所述,每当我尝试实际找到任何数据时,我都会收到这个不明白的错误。

我已经手动连接到数据库并执行了查询:工作正常。 我已将我的本地环境连接到我的mongohq:​​工作正常。

所有这些仍然可以在Node 0.4上使用mongoose 2.3.13和mongodb驱动程序0.9.6-7

所以我的问题:

  • 有没有人知道如何调试这个“db assertion failure”错误?
  • 任何其他想法可能出错?

1 个答案:

答案 0 :(得分:0)

在使用MongoHQ支持对此进行调查后,结果证明这是一个身份验证问题。

Heroku提供的MongoHQ网址与MongoHQ上的密码不同步。

在旧版本的应用程序中,我使用的是手动构建的URL,这解释了为什么这样做了。

我们怎么想出来的?通过查看MongoDB日志,这些日志包含明确的身份验证错误。遗憾的是,返回的JSON只包含通用的“db assertion failure”消息,没有其他细节。