当前系统:Windows XP / Windows 7(两者都出现问题)
遵循以下的部署准则:
https://devcenter.heroku.com/articles/python
通过使用简单的轮询应用程序进行测试,我成功地能够通过heorku推送应用程序,除了在检查日志后出现以下错误:
2012-04-27T08:14:42+00:00 app[web.1]: django.core.exceptions.ImproperlyConfigure
d: Error loading either pysqlite2 or sqlite3 modules (tried in that order): No m
odule named _sqlite3
尝试同步数据库时也会发生这种情况。
以下是settings.py文件中数据库的当前配置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'database.sqlite', # Or path to database file if using sqlite3.
'USER': '', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '', # Set to empty string for default. Not used with sqlite3.
}
}
我知道它是一个sqlite3数据库,我被告知它应该仍然允许heroku部署应用程序而没有任何错误。 我已经使用了与此问题相关的以下潜在解决方案:
No module named _sqlite3 How do I set up SQLite with a Django project? http://groups.google.com/group/django-users/browse_thread/thread/185f981f432346f1
任何帮助将不胜感激!如果需要其他信息,请告诉我。
答案 0 :(得分:1)
Heroku不支持sqlite,因为它只提供a read-only filesystem。
答案 1 :(得分:0)
我在设置文件中遇到了同样的错误。通过Heroku日志查看,我发现我的settings.py文件由于各种原因而失败。一旦我解决了这些问题,Django就不再抱怨缺少数据库设置。
造成这个问题的一个原因是我用allow sub-selects as tables in QuerySet extra()
的猴子补丁。此修补程序位于我的设置文件的末尾。
# Override default behaviour of compiler to quote table names when table name is a sub-query
from django.db.models.sql.compiler import SQLCompiler
_quote_name_unless_alias = SQLCompiler.quote_name_unless_alias
SQLCompiler.quote_name_unless_alias = lambda self,name: name if name.startswith('(') else _quote_name_unless_alias(self,name)
这个补丁显然需要在那时正确指定DATABASES。由于Heroku将magic DATABASES configuration附加到设置文件的末尾(即在猴子补丁之后),我不得不在猴子补丁上面手动插入他们的配置。