django nose和south有多个数据库的问题

时间:2011-02-05 20:52:13

标签: python django django-south

我有一个带有一个数据库的django项目(默认)。安装了South以生成迁移脚本和鼻子作为测试框架。模型建立在这个数据库上。所有测试都成功运行。

随后,我需要连接第二个数据库(旧版),我也将其添加到DATABASES配置中。我使用原始sql访问此数据库,没有模型。在尝试运行以前运行的测试时,我注意到:

  1. nose还为遗留数据库创建测试数据库
  2. 默认django表(auth _...等)也在此数据库中创建
  3. south也会针对旧数据库运行所有迁移脚本,但无法执行此操作
  4. 我想要的是禁用测试遗留数据库的创建以及在其上运行迁移脚本。理想情况下,我想通过发出原始sql create-insert语句在测试遗留数据库中创建表。这可能吗?

    感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您阻力最小的路径可能是编写自己的测试运行管理命令。为此,您可以覆盖现有命令,也可以只创建一个具有所需行为的单独命令。

可以在官方django docs上找到创建自定义管理命令的文档,您可以在django-test-extensions项目中找到覆盖库存“test”命令的一个不错的示例。