iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 22
0
Modern Web

Django案例實作之踩坑全記錄系列 第 22

部署網站with Heroku - 資料庫問題

一開始學用Heroku部署網站時,碰到許多資料庫配置的問題,下面是原本資料庫的設定:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql',
        'NAME': 'quiz',
        'USER': 'XXXX',
        'PASSWORD': 'XXXXX',
        'HOST': 'localhost',
    },
}

整個專案都透過git上傳到heroku,但heroku顯示一個資料工作表都沒有:
https://ithelp.ithome.com.tw/upload/images/20200922/20129725IjyvIb40Lh.png

我先手動把資料庫上傳上去,在Terminal執行下面命令:

heroku pg:push postgres://localhost/資料庫的名字quiz postgresql-infinite-12345 --app django-hp-quiz

執行完後總算有資料了:
https://ithelp.ithome.com.tw/upload/images/20200922/201297252QRgYygOhM.png

但網頁畫面卻說:
https://ithelp.ithome.com.tw/upload/images/20200922/20129725f1CHkFhwuc.png

最後在settings.py增加下面的程式碼:

import dj_database_url

DATABASES['default'] = dj_database_url.config(conn_max_age=600)

小結:Heroku透過dj_database_url來定位資料庫(它是一串文字包含postgress://...username password database-name),而因為在一開始我沒有設定DATABASE URL,所以Heroku會默認使用他們提供的設定,資料庫才會是空的。

下圖的'HEROKU_POSTGRESQL_PUCE_URL'就是在沒有設置DATABASE URL時Heroku會幫你默認的資料庫相關資訊:
https://ithelp.ithome.com.tw/upload/images/20200922/20129725F8VyQAJ5fT.png


上一篇
在Heroku下用SQLite會出現什麼問題
下一篇
部署網站with Heroku - 資料庫問題(續)
系列文
Django案例實作之踩坑全記錄33

尚未有邦友留言

立即登入留言