标题不清楚,我知道。
我想对我的应用程序进行单元测试,所以我编写了一个我想要执行的小测试。我启动了python manage.py test
,但数据库中出现错误:
The error was: ERREUR: the relation « me_auth_emailuser » doesn't exists
Error in migration: authtoken:0001_initial
DatabaseError: ERREUR: the relation « me_auth_emailuser » doesn't exists
(翻译自法语)
此表已使用南方迁移。对于我的应用程序,我只使用:
python manage.py syncdb
python manage.py migrate me_auth
python manage.py migrate
我不明白发生了什么,因为使用这些命令我没有得到任何错误......有人可以帮助我吗? :)
答案 0 :(得分:2)
据推测,在某些时候你有一个me_auth_email_user
的关系,你不再拥有。我想如果你要创建一个新的数据库,你会得到同样的错误,然后运行:
python manage.py syncdb
python manage.py migrate
有两种解决方案:
INSTALLED_APPS
中删除,如下所示,或者在settings.py
中设置SOUTH_TESTS_MIGRATE = False
)。 在测试期间移除南方的一种快速而苛刻的方法是在settings.py
下面的正常INSTALLED_APPS
设置下面显示类似的内容:
import sys
if 'test' in sys.argv:
INSTALLED_APPS = [app for app in INSTALLED_APPS if app != 'south']
通常,测试迁移是一件好事 - 您应始终能够创建新数据库并运行migrate
- 所以我强烈建议您考虑选项(2)。