2011-12-22 12 views
5

チュートリアルに沿って、herokuでセロリとdjangoを実行しています。Heroku Django Celery:NameError:name 'DATABASES'は定義されていません

私は労働者のために指定されたコードを入れたときにしかし、私は私のログにこのエラーが表示されます。私はこれを追加する前に同期すると私のsettings.pyは

import djcelery 

djcelery.setup_loader() 

BROKER_BACKEND = "djkombu.transport.DatabaseTransport" 
CELERY_RESULT_DBURI = DATABASES['default'] 
... 

のように見えます

2011-12-22T05:31:56+00:00 heroku[web.1]: Starting process with command `python canada/manage.py run_gunicorn -b "0.0.0.0:47336" -w 3` 
2011-12-22T05:31:56+00:00 app[web.1]: Unexpected error: (<type 'exceptions.NameError'>, NameError("name 'DATABASES' is not defined",), <traceback object at 0x11a9560>) 
2011-12-22T05:31:56+00:00 app[web.1]: Traceback (most recent call last): 
2011-12-22T05:31:56+00:00 app[web.1]: File "canada/manage.py", line 11, in <module> 
2011-12-22T05:31:56+00:00 app[web.1]:  import settings 
2011-12-22T05:31:56+00:00 app[web.1]: File "/app/canada/settings.py", line 51, in <module> 
2011-12-22T05:31:56+00:00 app[web.1]:  CELERY_RESULT_DBURI = DATABASES['default'] 
2011-12-22T05:31:56+00:00 app[web.1]: NameError: name 'DATABASES' is not defined 
2011-12-22T05:31:57+00:00 heroku[slugc]: Slug compilation finished 
2011-12-22T05:31:57+00:00 heroku[web.1]: State changed from starting to crashed 
2011-12-22T05:31:58+00:00 heroku[web.1]: Process exited 

CELERY_RESULT_DBURI = DATABASES['default']、うまくいきました。

export DATABASE_URL='postgres://postuser:[email protected]/dbname' 

環境変数を使用すると、自動的にsettings.py

答えて

8

Herokuのを修正することなく、データベースの認証情報を設定するために、Herokuのに最も簡単な方法です:the document

When you deploy a Django application, the compile process appends the following code to your settings.py to use the DATABASE_URL environment variable:

+0

それはどうしているのか分かりましたよ、右のようです。 –

+0

私が欲しかったのはまさにそれです。ありがとう! –

0

によると、前にあなたのアプリケーションを実行し、これを試してくださいsettings.pyの末尾にDATABASESの設定が追加されています。そのため、settings.pyにDATABASESという参照を設定すると、その設定は存在しません。またはbuildpackあなた自身を使用します。

あなたがあなた自身のファイルにHerokuのにDATABASES設定を複製することができます(django-heroku-templateをそれだけでENVからDATABASE_URLから読み込まれ、参照)。

+1

「heroku export DATABASE_URL = 'postgres:// postuser:postpassword @ posthost/dbname''を実行してから、アプリケーションを再起動するのですか?そして、私はすべてのデータベース情報を入れなければならないだろうか? Herokuがこれを私のsettings.pyに追加することになっているのであれば、私はチュートリアルに従っていたので、それはなぜ機能しないのですか? –

関連する問題