[英]Difficult pushing existing django application to Heroku. Database improperly configured
因此,我有一個完成的Django應用程序,盡管遇到了一些問題,但我現在嘗試將其上傳到Heroku進行生產。 我一直在關注Heroku網站上的教程:
https://devcenter.heroku.com/articles/django-app-configuration#migrating-an-existing-django-project
雖然我遇到這個錯誤:
settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details.
聽起來我需要將數據庫上傳到S3,以便Heroku可以訪問它,所以我在本教程中做到了
https://devcenter.heroku.com/articles/heroku-postgres-import-export#import
但我仍然遇到錯誤。 這是我的一些設置。
Settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'NAME': 'texchange',
'USER': 'joe',
'PASSWORD': '#######',
'HOST': 'localhost',
'PORT': '',
}
}
STATICFILES_DIRS = (
('/static/',
'/home/joe/Documents/exchange/Texchange/textchange/static/',),
('/media/',
'/home/joe/Documents/exchange/Texchange/textchange/media/'),
)
MEDIA_ROOT = '/home/joe/Documents/exchange/Texchange/textchange/media/'
MEDIA_URL = '/media/'
STATIC_ROOT = '/home/joe/Documents/exchange/Texchange/textchange/static/'
STATIC_URL = '/static/'
# Parse database configuration from $DATABASE_URL
import dj_database_url
DATABASES['default'] = dj_database_url.config()
# Enable Persistent Connections
DATABASES['default']['CONN_MAX_AGE'] = 500
我到底不明白什么? 任何方向將不勝感激,因為這是我第一次使用Heroku和S3上傳應用程序。
您在評論中提到僅當您運行heroku local
時才會發生此問題,這是完全不同的問題,並且肯定是您應該在問題開始時提到的問題。 顯然,這不是要“將應用程序上傳到Heroku”,也不是要讓Heroku找不到數據庫,因為您甚至還沒有在Heroku上運行,而是在本地運行。
幾乎可以肯定會出現問題,因為在您的本地環境中您沒有DATABASE_URL,但是您對dj_database_url
的調用完全覆蓋了現有的默認數據庫配置。
解決此問題的兩種方法是在該呼叫周圍設防:
if os.environ['DATABASE_URL']:
DATABASES['default'] = dj_database_url.config()
或者,最好完全刪除DATABASES字典聲明,並對該庫使用默認參數:
DATABASES = {'default': dj_database_url.config(default='postgres://joe:####@localhost/texchange')}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.