我有一个版本为1.6.5
的django应用程序,我正在尝试将其升级到1.8
,但是在django版本增加到{{1}之后我就得到了以下错误}}
1.8
代码
There is no South database module 'south.db.postgresql_psycopg2' for your database. Please either choose a supported database, check for SOUTH_DATABASE_ADAPTER[S] settings, or remove South from INSTALLED_APPS.
那么问题是什么以及需要做些什么才能解决这个问题?
我甚至尝试使用以下设置并在运行django本地服务器时收到相同的错误
INSTALLED_APPS = [
'django_messages',
'avatar',
'tinymce',
'south',
'tracking',
......
]
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql_psycopg2',
'HOST': '127.0.0.1',
'NAME': 'xxxxxx',
'USER': 'xxxxxx',
'PASSWORD': 'xxxxxx',
},
}
答案 0 :(得分:43)
我发现上述问题的解决方案只是将虚拟环境中的南方移除,而不是上面提到的所有更改
答案 1 :(得分:9)
你可能仍然在某处导入到南方。
只需:
pip uninstall south
然后:
python manage.py runserver
解决导入错误。
答案 2 :(得分:2)
自Django 1.7以来,迁移是框架的一部分。您可能不想使用South,而是migrate to django.db.migrations。
一般来说,在进行此类更新时,您应始终阅读发行说明(适用于1.7和1.8)。
答案 3 :(得分:1)
版本> = 1.7的Django使用内置迁移。你不需要使用南方。
有关Django迁移框架的更多详细信息,请参阅发行说明 - https://docs.djangoproject.com/en/1.9/releases/1.7/#schema-migrations
Django docs - https://docs.djangoproject.com/en/1.8/topics/migrations/
从南方升级 - https://docs.djangoproject.com/en/1.8/topics/migrations/#upgrading-from-south
答案 4 :(得分:0)
如果您使用的是Django< 1.7,如果你还没有安装South> = 1.0.1。对于使用Django> = 1.7并且不需要它的用户,这不会被列为依赖项。