HerokuアプリケーションにPostgresデータベースを追加しました.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)
私はHerokuのアプリでPostgresデータベースのためのURLであることを.envファイルに「DATABASE_URL」を設定しましたが、それは更新していないようですデータベース。私のアプリケーションは、ローカルのものではなく、Herokuデータベースに接続するように強制するにはどうすればよいですか?
あなたのコードが 'import os;のようなもので' DATABASE_URL'環境変数を実際に見ていることを確認できますか? print os.environ ['DATABASE_URL'] '?これを 'db_from_env'変数の前に置いて、サーバを再起動して出力を確認してください。 – VeGABAU
これはKeyErrorをスローします。実際に見ていないようです。私はdj_database_url.config()が.envファイルを読み込み、そこにDATABASE_URLの値を取得するはずだと思いましたか? 私は 'DATABASE_URL' = postgres:blahblahをエクスポートするとうまくいくようですが、実際にenv変数を格納したい場合は、.env – HLH
でそれを持つだけではうまくいかない理由がわかりません.envファイルは、おそらく 'https:// github.com/theskumar/python-dotenv'の使用を検討してください。 – VeGABAU