我正在使用以下数据库设置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(_DB_DIR, 'dev.db'),
'TEST_NAME': os.path.join(_DB_DIR, 'dev_test.db'),
}
}
但是,每次运行python manage.py test
都会中断。问题似乎出在测试数据库上。出于某种原因,未在此处创建来自标准db的相同表。命令返回django.db.utils.DatabaseError: no such table: tbforms_userprofile
。确实,当我使用sqlite3打开dev_test.db时,可能会看到指定的表(以及tbforms应用程序中的任何其他表)不存在。
我想念什么?我正在将Django 1.4与Sqlite一起使用
PS:重要的是要注意syncdb和migration可以平稳运行。完整的追溯信息可以在这里找到:http : //pastebin.com/9dVmuVyt
正如我们所讨论的,这里的问题是,存在用于User模型的后保存信号(在syncdb期间创建),用于创建Profile模型(在syncdb之后创建,在南方迁移)。因此,当syncdb(或您的测试)在新数据库上创建表并创建新用户时,尚未创建用户配置文件的表,并且会引发此错误。
解决方案:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句