推送到Heroku时,“'django_mongodb_engine'不是可用的数据库后端”

时间:2013-04-20 02:28:52

标签: django mongodb heroku django-mongodb-engine

我有一个成功在Heroku上运行并使用mongodb引擎的Django应用程序。突然之间,我再也无法推动它了。它似乎不再识别django_mongodb_engine模块。我甚至将所有更改恢复到最后运行的版本,但它仍然是相同的。我怀疑版本是否存在冲突,但无法弄清楚如何修复它。

这是我得到的错误:

Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 429, in execute_from_command_line
    utility.execute()
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 220, in execute
    output = self.handle(*args, **options)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/base.py", line 351, in handle
    return self.handle_noargs(**options)
  File "/app/.heroku/python/lib/python2.7/site-packages/django/core/management/commands/shell.py", line 46, in handle_noargs
    from django.db.models.loading import get_models
  File "/app/.heroku/python/lib/python2.7/site-packages/django/db/__init__.py", line 78, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 51, in load_backend
    raise ImproperlyConfigured(error_msg)
django.core.exceptions.ImproperlyConfigured: 'django_mongodb_engine' isn't an available database backend. 
Try using django.db.backends.XXX, where XXX is one of:
    'dummy', 'mysql', 'oracle', 'postgresql', 'postgresql_psycopg2', 'sqlite3'
Error was: No module named utils

这些是requirements.txt

的重要部分
hg+https://bitbucket.org/wkornewald/django-nonrel
git+https://github.com/django-nonrel/mongodb-engine
hg+https://bitbucket.org/wkornewald/djangotoolbox

pymongo==2.2.1
pytz==2012d

我特别困惑,因为我恢复了所有的变化。具有相同配置的这个代码完全运行(并且仍然在我的生产服务器上运行),只是推送不起作用。

由于 西蒙

1 个答案:

答案 0 :(得分:0)

当然,就在我提出要求时,我找到了答案: - )

我完全不知道为什么,但是定义我要检查的确切版本可以解决问题。

所以requirements.txt现在看起来像这样:

-e hg+http://bitbucket.org/wkornewald/django-nonrel@be48c152abc6b15e45155e2bbcfd69c665ccb536#egg=Django-dev
-e git+https://github.com/django-nonrel/mongodb-engine@52257b5d90dcfaa564e708264a9cfe591d301fe6#egg=django_mongodb_engine-dev
-e hg+https://bitbucket.org/wkornewald/djangotoolbox@a8cdf61ba9c0cdc7cbbbd37d693e9a222d9a8e5f#egg=djangotoolbox-dev

pymongo==2.2.1
pytz==2012d
相关问题