4

私はHerokuでDjangoを使い始めた後、dj_database_urlを設定することを示しています...

DATABASES = {'default': dj_database_url.config(default='postgres://localhost')}

これを上記のとおりにそのままにしておく必要がありますか?それが私がしたことです-そして私のサイトはうまく機能しているようです...

また

上記の何かを DATABASE_URL と交換することになっていますか?これはheroku構成設定から取得されますか?

DATABASE_URL をどこにも使用していない場合-上記の設定で変更なしでherokuで動作しているように見えます....しかし、pg:infoでDBを見ると、接続が0になる...と思いますpostgresql への接続はありません。

dj_database_url がこれを使って Heroku でどのように機能しているのか、まだよくわかりません。

heroku pg:info
=== HEROKU_POSTGRESQL_GOLD_URL (DATABASE_URL)
Plan:        Dev
Status:      available
Connections: 0
PG Version:  9.1.6
Created:     2012-10-07 16:11 UTC
Data Size:   6.6 MB
Tables:      12
Rows:        27/10000 (In compliance)
Fork/Follow: Unavailable
4

1 に答える 1

9

そのままで正しいです。

Heroku で実行している場合、データベースの URL を含む環境変数セットDATABASE_URL(postgres://

ローカルで実行する場合DATABASE_URLは設定されないため、default = '...'代わりにデータベースの URL が使用されます (開発用にコードをローカルで実行し、コードを変更せずに Heroku にデプロイできます)。

これは「12factor 方法論」に基づいています (ドキュメント全体で、Heroku がどのように構成されているかをほぼ説明しています)。

URLからユーザー名/パスワード/ホスト/データベース名を解析し、それをDjangoが期待する辞書形式dj_database_url.configに分割するだけです-興味があるなら、コードはかなり単純です

于 2012-10-08T05:46:04.130 に答える