2011-12-22 12 views
5

Estoy siguiendo a lo largo de this tutorial para obtener apio y django corriendo en heroku.Heroku Django Apio: NameError: nombre 'BASES DE DATOS' no está definido

Sin embargo, me sale este error en los registros de mi cuando me ponga en el código especificado para el trabajador:

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 

Mi settings.py parece

import djcelery 

djcelery.setup_loader() 

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

Cuando synced antes de añadir este línea, CELERY_RESULT_DBURI = DATABASES['default'], funcionó bien. De acuerdo con 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:

Respuesta

8

Heroku está agregando la configuración DATABASES al final de su settings.py, por lo que cuando hace referencia a DATABASES en su settings.py, no existe.

Puede replicar Heroku DATABASES ajustes en su propio archivo (que acaba de leer de DATABASE_URL de env, consulte: django-heroku-template) o utilizar su propio buildpack.

+0

THanks Ill le deja saber cómo va eso, parece ser el correcto –

+0

Eso es exactamente lo que quería. ¡Gracias! –

0

probar esto antes de ejecutar su aplicación:

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

Utilizando las variables de entorno es la forma más fácil de Heroku para ajustar automáticamente las credenciales de base de datos, sin necesidad de modificar settings.py

+1

¿Quieres decir do 'heroku run export DATABASE_URL = 'postgres: // postuser: postpassword @ posthost/dbname'' y luego reiniciar mi aplicación? ¿Y tendría que poner toda la información de mi base de datos? si se supone que Heroku debe agregar esto a mi settings.py ¿por qué no funciona, ya que seguí el tutorial? –

Cuestiones relacionadas