2012-03-05 95 views
3

我正在關注Heroku Django tutorial。我相信我確切地遵循了它。除了他們所要求的,我沒有運行任何額外的命令。Heroku Django:跑步工人

但是,當我到達同步Celery和Kombu表(在「Running a Worker」部分下)的部分時,我收到了一個錯誤。

鍵入他們的命令python hellodjango/manage.py syncdb,使我有以下幾點:

... 
File "/Users/Alex/Coding/getcelery/venv/lib/python2.7/site-packages/django/db/backends/dummy/base.py", line 15, in complain 
    raise ImproperlyConfigured("You haven't set the database ENGINE setting yet.") 
django.core.exceptions.ImproperlyConfigured: You haven't set the database ENGINE setting yet. 

任何人都遇到這個問題之前?我應該在教程中做一些不明確的事情嗎?

任何提示將不勝感激!

+0

嘿,我遇到了在本地創建表的問題。我發現你使用sqlite3作爲本地數據庫,但會造成與遠程的衝突?因爲heroku remote仍在使用postgresql。 – Yulong 2012-06-18 15:46:37

回答

1

你的輸出是從運行syncdb本地。啓用數據庫插件將在您的配置中設置DATABASE_URL,並因此設置dynos的環境(請參閱heroku config)。它不會做的是在本地設置DATABASE_URL - 你需要自己做(或者對其他本地數據庫進行排序)

+0

我在本地添加了一個sqlite數據庫(我認爲這就是我所做的),在本地配置它,並且一切都開始工作!謝謝 – Alexandre 2012-04-17 18:52:27

0

可能是因爲您的DATABASE字典未定義。你可以嘗試添加該代碼應閱讀環境變量的數據庫,然後芹菜DB可以設置從它:

import os 
import sys 
import urlparse 

# Register database schemes in URLs. 
urlparse.uses_netloc.append('postgres') 
urlparse.uses_netloc.append('mysql') 

try: 

    # Check to make sure DATABASES is set in settings.py file. 
    # If not default to {} 

    if 'DATABASES' not in locals(): 
     DATABASES = {} 

    if 'DATABASE_URL' in os.environ: 
     url = urlparse.urlparse(os.environ['DATABASE_URL']) 

     # Ensure default database exists. 
     DATABASES['default'] = DATABASES.get('default', {}) 

     # Update with environment configuration. 
     DATABASES['default'].update({ 
      'NAME': url.path[1:], 
      'USER': url.username, 
      'PASSWORD': url.password, 
      'HOST': url.hostname, 
      'PORT': url.port, 
     }) 
     if url.scheme == 'postgres': 
      DATABASES['default']['ENGINE'] = 'django.db.backends.postgresql_psycopg2' 

     if url.scheme == 'mysql': 
      DATABASES['default']['ENGINE'] = 'django.db.backends.mysql' 
except Exception: 
    print 'Unexpected error:', sys.exc_info() 
+0

我嘗試將此代碼添加到'settings.py',但在執行syncdb時我仍然得到完全相同的錯誤。本教程說:「當您部署Django應用程序時,編譯過程將[上面的代碼片段]附加到settings.py以使用DATABASE_URL環境變量」。 – Alexandre 2012-03-05 20:54:35

+0

任何線索上的「尚未設置數據庫引擎設置」(更新)錯誤?你有沒有設法成功完成本教程?你可以給的任何幫助將是美好的 – Alexandre 2012-03-06 20:49:12