我有一个带有一个数据库(默认)的 Django 项目。安装 South 是为了生成迁移脚本和 nose 作为测试框架。模型是建立在这个数据库上的。所有测试均已成功运行。
随后,我需要连接第二个数据库(旧版),我也将其添加到 DATABASES 配置中。我使用原始 sql 访问这个数据库,没有模型。在尝试运行之前运行的测试时,我注意到:
- nose 还为遗留数据库创建了一个测试数据库
- 默认的 django 表(auth_...等)也在这个数据库中创建
- south 也针对遗留数据库运行所有迁移脚本,但失败了
我想要的是禁止创建测试遗留数据库和在其上运行迁移脚本。理想情况下,我想通过发出原始 sql create-insert 语句自己在测试遗留数据库中创建表。这可能吗?
感谢您的帮助。
请您参考如下方法:
您的阻力最小的途径可能是编写您自己的测试运行管理命令。为此,您可以覆盖现有命令,也可以简单地创建一个具有所需行为的单独命令。
创建自定义管理命令的文档可以在官方django docs上找到你可以在 django-test-extensions 中找到一个覆盖股票“测试”命令的好例子项目。
