2011-12-22 31 views
5

Ben kereviz ve django kahramanca üzerinde çalışan almak için this öğretici boyunca takip ediyorum.Heroku Django Kereviz: NameError: name 'DATABASES' tanımlı değil

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 

Benim settings.py ben bu eklemeden önce senkronize

import djcelery 

djcelery.setup_loader() 

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

benziyor: Ben işçi için belirlenen kod koyduğunuzda

Ancak, ben Günlüklerimde bu hatayı alıyorum satır, CELERY_RESULT_DBURI = DATABASES['default'], iyi çalıştı. settings.py

cevap

8

Heroku değiştirmeden, otomatik veritabanı kimlik bilgilerini ayarlamak için Heroku en kolay yolu ortam değişkenleri olan kullanma

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

: 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

THanks, bunun nasıl gideceğini bilmenizi sağladı, doğru görünüyor –

+0

Tam olarak istediğim bu. Teşekkürler! –

0

göre uygulamanızı bundan önce çalıştırmak deneyin , settings.py'un sonuna DATABASES yapılandırmasının eklenmesidir, böylece settings.py dosyanıza DATABASES referansı yaptığınızda, mevcut değildir. ya buildpack Kendi kullanın:

Kendi dosyasında Heroku DATABASES ayarları çoğaltabilir (django-heroku-template sadece env gelen DATABASE_URL okunan, bakınız).

+1

Bunu yapmak için şu bağlantıyı tıklatınız: DORABASE_URL = 'postgres: // postuser: postpassword @ posthost/dbname'; Ve tüm veritabanı bilgilerimi koymam gerekecek mi? Heroku'nun bunu benim settings.py'ye eklemesi gerekiyorsa, neden ders çalışmayı takip ettiğimden beri çalışmıyor? –