私は初めてのHeroku/Djangoアプリに取り組んでいます。 _DATABASE_URL
_変数とDATABASES
変数を正しく設定していることを確認したいだけです。これが私のコードの内容です:
_import dj_database_url
DATABASE_URL = 'postgresql:///my_app'
# Parse database configuration from $DATABASE_URL
DATABASES = {
'default': dj_database_url.config(default=DATABASE_URL)
}
_
DATABASES['default'] = dj_database_url.config()
があり、Django _run server
_やmigrate
などのコマンドを使用しようとすると、次のエラーが発生します:_NameError: name 'DATABASES' is not defined
_。この問題を解決するように見えるので、_DATABASE_URL
_を設定しました(_my_app
_データベースを作成した後)。
コーディングとテストを行っている間、すべてが正常に機能しているように見えますが、インターネット上でデータベース変数を設定するための6つの異なる方法も確認しました。これが正しくない場合は、今すぐ修正したいと思います。私を本当に混乱させているのは、データベースが/ usr/local/var/postgresの場合、アプリをHerokuにプッシュすると、データはどのようにWebにプッシュされるのでしょうか。それとも、これはまったく起こりませんか?この時点で私はあまりにも混乱/疲れていますか?
これは単純な論理の問題です。ディクショナリ自体を定義する前に、DATABASESディクショナリの「デフォルト」キーを設定することはできません。
呼び出し内でdefault
parameterをdj_database_url
に設定するか、別のDATABASE_URL
変数として設定するかは関係ありません。特に、そうなることはありません。 Herokuで使用されます。これは、環境変数によってオーバーライドされるためです。
これは Heroku Devecenter に文書化されています
# Parse database configuration from $DATABASE_URL
import dj_database_url
# DATABASES['default'] = dj_database_url.config()
#updated
DATABASES = {'default': dj_database_url.config(default='postgres://user:pass@localhost/dbname')}
必要な場合 データベース接続プール このビットも追加します。 詳細
# Enable Connection Pooling
DATABASES['default']['ENGINE'] = 'Django_postgrespool'