我不能让我的网站和南方一起运行。我已经成功地安装了南方,而且我可以成功地“导入南方”。
./manage.py shell
>>> import south
>>>但是,在INSTALLED_APPS中添加'south‘并运行./manage.py e.py syncdb (完成安装)后,将得到以下错误:
您的数据库没有南方数据库模块'south.db.django.db.backends.postgresql_psycopg2‘。请选择受支持的数据库,检查SOUTH_DATABASE_ADAPTERS设置,或从INSTALLED_APPS中移除南方。
我使用的是PostgreSQL数据库和postgresql_psycopg2库。我很困惑,因为Postgres绝对是一个受支持的数据库。我需要在SOUTH_DATABASE_ADAPTER中手动配置settings.py吗?
编辑:这是我的数据库设置。我知道它们能工作--我试图让它运行的(测试)服务器已经和DB对话了好几个星期了。
DATABASE_ENGINE = 'postgresql_psycopg2'
DATABASE_NAME = 'iknowthisiscorrect'
DATABASE_HOST = '' #localhost
DATABASE_PORT = '5432' # I've configured Postgres to use this port发布于 2010-09-25 08:42:10
我在南方源代码上找到了这个评论。看第63行。
63 # This error should only be triggered on 1.1 and below.
64 sys.stderr.write(
65 (
66 "There is no South database module '%s' for your database. " + \
67 "Please either choose a supported database, check for " + \
68 "SOUTH_DATABASE_ADAPTER[S] settings, " + \
69 "or remove South from INSTALLED_APPS.\n"
70 ) % (module_name,) 你用的是哪个版本的Django?是<=1.1吗?
发布于 2012-06-06 11:17:36
这实际上是南方的后期版本中的一个bug,它们并不完全向后兼容,并且假设从django.db.utils导入,而这种导入直到django 1.2才存在。
您可以对此进行修补,打开south/db/generic.py并编辑第6行:
try:
from django.db.utils import DatabaseError
except:
from django.db import DatabaseError注意:这个导入也在其他db/*.py文件中,但是我没有使用oracle或firebird,所以还没有用这些文件进行测试。
第二个注意: django 1.1事务不知道别名,而且很可能不会让南方实际工作,这一点并没有帮助。
发布于 2010-09-25 08:07:12
你在使用哪种版本的South和Django?如果您使用Django 1.2,则需要使用最新版本的South。
南方代码库中的这条线显示,如果没有设置特定的SOUTH_DATABASE_ADAPTERS,它将从主项目设置文件的数据库设置中设置自己的数据库适配器。这意味着您的DB设置本身可能是错误的,可能吗?
请用数据库设置(减去密码)更新您的问题好吗?
https://stackoverflow.com/questions/3792942
复制相似问题