1
我已經添加了一個Postgres數據庫到我的Heroku應用程序,並且試圖將我的Django應用程序連接到它。但是,我的應用程序始終連接到本地Postgres數據庫。連接Django到Heroku Postgres數據庫
settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'app_db',
'USER': 'admin',
'PASSWORD': '',
'HOST': 'localhost',
'PORT': '',
}
}
db_from_env = dj_database_url.config(conn_max_age=500)
DATABASES['default'].update(db_from_env)
我在.ENV文件中設置「DATABASE_URL」是在我的應用程序的Heroku Postgres數據庫裏的URL,但它似乎並沒有更新數據庫。如何強制我的應用程序連接到Heroku數據庫而不是本地數據庫?
你能否確認你的代碼實際上看到了'DATABASE_URL'環境變量,如'import os; print os.environ ['DATABASE_URL']'?只需在'db_from_env'變量之前放置它,重新啓動服務器並檢查輸出。 – VeGABAU
它拋出一個KeyError;似乎並沒有真正看到它。我以爲dj_database_url.config()應該讀取.env文件並在那裏獲取DATABASE_URL值? 如果我導出'DATABASE_URL'= postgres:blahblah,它似乎工作,但我無法弄清楚爲什麼它不會與只在.env – HLH
如果你真的想存儲你的env變量.env文件,可能考慮使用'https:// github.com/theskumar/python-dotenv'。 – VeGABAU