最佳答案
姜戈 1.7介绍了 数据库迁移。
在 Django 1.7中运行单元测试时,它强制使用 迁徙,这需要很长时间。因此,我希望跳过 django 迁移,并在最终状态下创建数据库。
我知道忽略迁移可能是一种不好的做法,因为这部分代码不会被测试。但事实并非如此: 我正在 CI 测试服务器(Jenkins)中运行完整的迁移。我只想在本地测试中跳过迁移,因为速度很重要。
一些背景:
在使用 South 之前,我一直使用 < em > SOTH _ TESTS _ MIGRATE 设置:
默认情况下,如果在非交互模式下运行,South 的 syncdb 命令也会应用迁移,包括运行测试时——每次运行测试时,它都会运行每次迁移。
如果您希望测试运行程序使用 syncdb 而不是 shift (例如,如果您的迁移花费了太长的时间来应用) ,只需在 setings.py 中设置 SOUTH _ TESTS _ MIGRATE = False。
然而,Syncdb不再存在了,现在它是 迁徙。
在 Django 1.8中,我将使用 --keepdb参数:
Keepdb 选项可用于在测试运行之间保留测试数据库。这样做的好处是,可以跳过创建和销毁操作,从而大大减少运行测试的时间,特别是大型测试套件中的测试。如果测试数据库不存在,它将在第一次运行时创建,然后为每次后续运行保留。在运行测试套件之前,任何未应用的迁移也将应用到测试数据库。
So this question is limited to Django 1.7.