2013-06-01 13 views
10

Sono un completo noob di Heroku e sto provando a creare un'applicazione Django su Heroku. Non riesco a capire cosa inserire per queste impostazioni in settings.py:Come impostare il database per l'app Django su Heroku?

DATABASES = { 
    'default': { 
     'ENGINE': 'django.db.backends.', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
     'NAME': '',      # Or path to database file if using sqlite3. 
     # The following settings are not used with sqlite3: 
     'USER': '', 
     'PASSWORD': '', 
     'HOST': '',      # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP. 
     'PORT': '',      # Set to empty string for default. 
    } 
} 

Qualcuno può darmi una mano? Grazie!

risposta

12

È possibile farlo manualmente osservando le informazioni del database nel dashboard o eseguendo "heroku config" per vedere la stringa di configurazione del DB. Ma il modo migliore è di gran lunga il dettaglio nello Heroku Getting Started guide for Django. Aggiungere dj-database-url==0.2.1 al requirements.txt file e quindi:

# Parse database configuration from $DATABASE_URL 
import dj_database_url 
DATABASES['default'] = dj_database_url.config() 

in luogo di altre definizioni di database.

+1

Grazie! Quindi stai dicendo che se modifico requirements.txt, allora dovrei essere in grado di copiare e incollare il blocco di codice sopra in settings.py e non dovermi preoccupare di compilare le impostazioni del database? L'ho fatto, quindi ho provato a eseguire "python manage.py syncdb" e ho ricevuto il seguente errore: 'ImproperlyConfigured: settings.DATABASES non è configurato correttamente. Si prega di fornire il valore ENGINE. Controlla la documentazione delle impostazioni per maggiori dettagli. ' –

+0

E poi ho provato a impostare il valore "ENGINE" su "django.db.backends.postgresql_psycopg2" e mi ha comunque dato lo stesso errore ... hmm. –

+1

Probabilmente il problema è che questo codice è per l'esecuzione su Heroku in cui il tuo DATABASE_ENV o qualche altra variabile di sistema è già impostato. Presumo che tu stia cercando di eseguirlo prima sul tuo build locale. Per risolvere il problema, puoi passare una stringa URL predefinita a dj_database_url.config() (consulta https://github.com/kennethreitz/dj-database-url) o mantenere un file di impostazioni separato per la build locale. –

Problemi correlati