这里是情况:
我们正在Django 2.1中创建一个新的小型REST API。它需要对四个表进行只读访问,两个mysql数据库中的每个都有两个。具体来说,假设两个数据库分别称为A和B,表一,二,三和四。因此,A.one,B.two,C.three和C.four。
我已经在使用Django Testing - I only want one of my databases created - how to specify中的解决方案来阻止测试与真实数据库进行通话。
我想做的是在测试数据库中设置四个表(已经使用managed = false
为此设置了models.py),其中的测试数据反映了上述数据库和表结构,但是在测试内部sqlite数据库。这样,例如,对B.three的查询被正确地路由到test_B.three,而不是A.three或某些顶级表。
这样做的原因之一是我们的数据库非常大,并且某些表包含两三百万行。我们不希望测试访问它们或从中复制数据。此外,由于该应用程序不拥有数据库架构,因此,如果我们使用某种形式的迁移,则需要将它们明确地限制在测试数据库中。