Heroku上的MongoHQ“db断言失败”
我正在尝试将我的节点应用程序以及所有模块从0.4升级到0.6。我想我一切都对了,但MongoHQ返回:Heroku上的MongoHQ“db断言失败”,heroku,mongoose,mongohq,Heroku,Mongoose,Mongohq,我正在尝试将我的节点应用程序以及所有模块从0.4升级到0.6。我想我一切都对了,但MongoHQ返回: db assertion failure 在每次查找/独特调用时,连接都不会出错 这是我的package.json,我已将所有模块固定为一个特定版本,因为我最初在local和Heroku之间存在一些差异。现在唯一的区别是我运行的是Node 0.6.19 local,Heroku运行的是Node 0.6.18: { "name": "expensesspreadsheet" , "versio
db assertion failure
在每次查找/独特调用时,连接都不会出错
这是我的package.json,我已将所有模块固定为一个特定版本,因为我最初在local和Heroku之间存在一些差异。现在唯一的区别是我运行的是Node 0.6.19 local,Heroku运行的是Node 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工作正常回调中没有错误。让我知道如果你想看到的代码,但它是非常标准的,几乎直接从猫鼬网站
然而,正如上面所讨论的,每当我试图实际查找任何数据时,我都会得到这个难以描述的错误
我已经手动连接到数据库并执行了查询:工作正常。
我已经将我的本地环境与我的mongohq连接起来了:很好
所有这些仍然可以在节点0.4上使用mongoose 2.3.13和mongodb驱动程序0.9.6-7
所以我的问题是:
有人知道如何调试这个db断言失败错误吗?
还有其他想法吗?可能有什么问题?
通过MongoHQ支持对此进行调查后,发现这是一个身份验证问题 Heroku提供的MongoHQ URL与MongoHQ上的密码不同步 在旧版本的应用程序中,我使用了一个手动构建的URL,这解释了为什么这个URL可以工作
我们怎么知道的?通过查看MongoDB日志,这些日志包含明确的身份验证错误。遗憾的是,返回的JSON只包含一般的db断言失败消息,没有其他细节。与此同时,我用一个新的MongoHQ实例创建了一个新的应用程序副本。这非常有效。当我将新应用程序指向旧的MongoHQ URL时,我收到了相同的db断言失败消息。