在Heroku部署后,Django(djongo)无法连接到MondoDB Atlas

2024-05-23 19:49:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我设法让它在本地工作(不同的集群,单独的settings.py),但部署到Heroku之后就不行了

Heroku-自动添加带有postgresql的数据库URL配置变量,我无法删除/编辑它

MongoDB Atlas-我已经将MongoDB Atlas集群设置为允许来自任何地方的IP。而且密码没有有趣的字符

django生产设置.py

DATABASES = {
    'default': {
        'ENGINE': 'djongo',
        'NAME': 'DBProd',
        'CLIENT': {
          'host': "mongodb+srv://XXX:YYY@ZZZ.pc4rx.mongodb.net/DBProd?retryWrites=true&w=majority",
        }
    }
}

我在部署之后直接运行了迁移,结果都是绿色的OK heroku run python manage.py migrate

一切都能正常工作,只是数据没有存储在MongoDB Atlas集群中。有很多来自不同网站的帖子,但是它们都有不同的说明。。。我试图关注的一些帖子:

一个非常困惑的初学者


Tags: topy数据库herokusettingspostgresqlmongodb部署
1条回答
网友
1楼 · 发布于 2024-05-23 19:49:40

这也发生在我身上,在我的例子中,Heroku不知何故添加了postgresql作为我应用程序的附加组件,所以必须先删除它。 查看有关postgresql和如何销毁加载项的Heroku文档: https://devcenter.heroku.com/changelog-items/438

https://devcenter.heroku.com/articles/managing-add-ons

然后,您需要通过添加带有数据库url的MONGODB_URI config var来将MongoDB配置为您的数据库。您现在应该准备好连接到MongoDB了

以下文档也有帮助: https://www.mongodb.com/developer/how-to/use-atlas-on-heroku/

网友
2楼 · 发布于 2024-05-23 19:49:40

不管是谁降落在这里。在'host'下面添加'authMechanism': 'SCRAM-SHA-1',将解决此问题

相关问题 更多 >