【发布时间】:2016-02-17 20:10:41
【问题描述】:
我有一个 Django 1.8 代码库,其中包含 14 个应用程序和约 90 个表。大多数应用都有 1-2 次迁移。
我注意到运行测试套件所花费的大部分时间都花在了应用迁移上。将所有迁移应用到空数据库可能需要 5 分钟以上的时间。
不过,创建数据库并将 SQL 转储导入其中以实现相同的数据库状态需要 1-2 秒。
我们不使用标准的manage.py test 方法,所以使用--keepdb 可能对我来说不是一个选项。 (即使是这样,我每次运行至少要为迁移付出一次代价。)
我正在寻找一种根据最新模型定义创建空数据库的方法。例如,进行初始迁移就好像所有其他迁移都不存在会产生正确的效果。
有没有已知的方法来实现这一点?或者,是否有另一种众所周知的方法来解决在测试期间迁移需要很长时间的问题?
【问题讨论】:
-
我不久前读过这篇文章。它应该加快速度! (如果您使用的是 postgres)tech.marksblogg.com/test-django-on-ram-drive.html 请仅用于测试!不要成为那个射他/她自己脚的人
标签: python mysql django testing database-migration