我有一个 Django 1.8 代码库,其中包含 14 个应用程序和约 90 个表。大多数应用都有 1-2 次迁移。
我注意到运行测试套件的大部分时间都花在了应用迁移上。将所有迁移应用到空数据库可能需要超过 5 分钟的时间。
不过,创建数据库并将 SQL 转储导入其中以达到相同的数据库状态需要 1-2 秒。
我们不使用标准的manage.py 测试
方法,因此使用--keepdb
可能不是一个选项 对我来说。 (即便如此,每次运行我也必须至少支付一次迁移费用。)
我正在寻找一种根据最新模型定义创建空数据库的方法。例如,进行初始迁移就好像所有其他迁移都不存在 会产生正确的效果。
有没有已知的方法来实现这一点?或者,对于迁移在测试期间花费很长时间的问题,是否有另一种众所周知的方法?
最佳答案
有一个很好的应用叫做 django-test-without-migrations https://pypi.python.org/pypi/django-test-without-migrations/ .它做的正是你想要的:使用最新的模型定义创建数据库。
安装和配置(非常简单)后,您只需运行
python manage.py test --nomigrations
或
python manage.py test -n
而且它很管用。
关于python - Django 和缓慢的迁移 : how to quickly get an empty database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33740281/