簡體   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