繁体   English   中英

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

[英]Django(djongo) can't connect to MondoDB Atlas after Heroku deployment

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

Heroku - 自动添加带有 postgresql 的 DATABASE_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",
        }
    }
}

我在部署后直接运行迁移,一切正常heroku run python manage.py migrate

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

-- 一个很迷茫的初学者

对于任何登陆此的人。 'host'下面添加'authMechanism': 'SCRAM-SHA-1', ' 将解决此问题。

这也发生在我身上,就我而言,不知何故 Heroku 添加了 postgresql 作为我的应用程序的附加组件,因此必须先删除它。 Check Heroku documentation about postgresql and how to destroy add-on: 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/

我一直有同样的问题。 在本地一切正常。 问题是在 Heroku 上部署时。 我添加了'authMechanism': 'SCRAM-SHA-1'并且我还通过添加MONGODB_URI config var将 MongoDB 配置为我的数据库。 Heroku 仍然使用postgresql自动配置DATABASE_URL config var变量,我无法删除/编辑它。

在我的 Javascript 代码中,我使用了我在urls.py中指定的fetch('127.0.0.1:8000/<something>') ,这样views.py从 pymongo 读取数据并将其作为响应返回。

After deploying my app to Heroku (and hardcoding the 127.0.0.1:8000 to <myappname>.heroku.com ) the same fetch method seems to return [] instead of json containing values from MongoDB.

这是我在一篇文章中发现的最相同的问题,我希望我没有脱离主题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM