Django2のデータベース設定(ENGINE VALUE)とHeroku管理画面ログイン
Django2.0でブログのプロジェクトを作成しています。データベースはデフォルトのSQlite3からPostgreSQLに変更し,Herokuにデプロイしました。
Herokuサイト上の管理画面からログインできなくなったため、解消方法をご教示いただきたく投稿させていただきました。
行った作業ですが、サイトを色々調べ、settings.pyの
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
これを
import dj_database_url
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
db_from_env = dj_database_url.config()
DATABASES = {
'default': dj_database_url.config()
}
ALLOWED_HOSTS = ['*']
このように置き換えデプロイしたところ,$ heroku open
で正常にサイトが表示されました。
デプロイする前に$ python manage.py createsuperuser
でスーパーユーザーの
アカウントを作成し、パスワードも設定しました。
ローカル環境ではこのログイン情報が有効で、管理画面からログインしてブログ投稿もできます。
ところがhttps:*****.herokuapp.com/admin
から管理画面でログインしようとしたところ、ローカルで有効だったユーザー情報ではログインできません。
再び色々と調べ、改めてスーパーユーザーアカウントを作る必要があるとたどり着きました。
そしてまた$ python manage.py createsuperuser
を実行したところ、
settings.DATABASES is improperly configured. Please supply the ENGINE value.
↑このエラーが出てきました。
まだ試していないのですが、DATABASESの記述を以下にすれば,再び
create superuserが実行でき、Herokuサイトから管理画面でログインできるのでしょうか。
import dj_database_url
PROJECT_ROOT = os.path.dirname(os.path.abspath(__file__))
db_from_env = dj_database_url.config()
DATABASES = {
'default':{
'ENGINE':'django.db.backends.postgresql'
'NAME': dj_database_url.config()
}
}
ALLOWED_HOSTS = ['*']
あるいは、他の原因や方法があればご教示頂けますと幸いです。
Herokuのダッシュボードから PostgreSQLの設定が何か必要なのでしょうか。
よろしくお願いいたします。