2013-02-26 3 views
1

Heroku/Django/Postgres 게임을 처음 접했고 tutorial의 지침을 따른 후에 문제가 생겼습니다.Heroku Django 설정 후 postgres 데이터베이스/syncdb 문제

설치 : 장고 1.4.5 dj_database_url Postgress.app 9.2.2.0 settings.py에서 나중에

DATABASES = { 
'default': { 
    'ENGINE': 'django.db.backends.postgresql_psycopg2', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'. 
    'NAME': 'db_name',      # Or path to database file if using sqlite3. 
    'USER': '',      # Not used with sqlite3. 
    'PASSWORD': '', 
    'HOST': '',      # Set to empty string for localhost. Not used with sqlite3. 
    'PORT': '',      # Set to empty string for default. Not used with sqlite3. 
} 
} 

과 :

import dj_database_url 
    DATABASES['default'] = dj_database_url.config() 

내가 실행 파이썬 여기 내 설정이다 manage.py syncdb :

Traceback (most recent call last): 
    File "manage.py", line 10, in <module> 
    execute_from_command_line(sys.argv) 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-   packages/django/core/management/__init__.py", line 443, in execute_from_command_line 
utility.execute() 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv 
self.execute(*args, **options.__dict__) 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/core/management/base.py", line 232, in execute 
output = self.handle(*args, **options) 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/core/management/base.py", line 371, in handle 
return self.handle_noargs(**options) 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 57, in handle_noargs 
cursor = connection.cursor() 
    File "/Users/joerobinson/.virtualenvs/dg/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 15, in complain 
raise ImproperlyConfigured("settings.DATABASES is improperly configured. " 
django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. 
{'default': {'ENGINE': 'django.db.backends.dummy', 'TEST_MIRROR': None, 'NAME': '', 'TEST_CHARSET': None, 'TIME_ZONE': 'UTC', 'TEST_COLLATION': None, 'PORT': '', 'HOST': '', 'USER': '', 'TEST_NAME': None, 'PASSWORD': 

그래서 내가 잘못 뭔가를 구성해야합니다 알고 있지만, 나는 밤에 올바른 설정을 발견하지 않은 : 나는 파이썬 manage.py 쉘, 가져 오기 설정을 실행하고 데이타베이스를 볼 때, 내가 얻을 검색 중. 이걸 본 사람 있어요?

답변

0

나는 다음과 같이 데이터베이스 URL을 구성 지적했다 :

DATABASES['default'] = dj_database_url.config(default='postgres://localhost/db_name') 

나는 psycopg2 패키지와 GCC-4.2 관련 문제가 있었다, 그러나 그는 적용되지 않습니다 내 원본 게시물.

1

django.db.backends.dummy이 아닌 실제 Django 데이터베이스 백엔드를 원할 수도 있습니다. 예를 들어 :

{'ENGINE': 'django.db.backends.postgresql_psycopg2', ... } 
+0

예, 나는 확실히 그것을 원하지. 문제는 django.db.backends.dummy가 어디에 삽입되는지 잘 모르겠다는 것입니다. 이 줄이어야합니다 : DATABASES [ 'default'] = dj_database_url.config(). 위에서 설정 한 데이터베이스 기본값을 dj_database_url.config()에 어떻게 제공합니까? – Joe

+0

@Joe Ah, ok. 죄송합니다. 아마도 http://stackoverflow.com/a/3249215/398670 또는 http://stackoverflow.com/questions/2947618/django-tutorial-says-i-havent-set-database-engine-setting-yet-but-i - 있니? –

0

나는 더미/base.py을 삭제하고 여기에 심볼릭 링크를 생성하여 같은 문제를 해결 :

ln -s /usr/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py /usr/lib/python2.6/site-packages/django/db/backends/dummy/base.py 
관련 문제