我有一個django項目,當我打電話給py.test
時運行測試,但我最近注意到它沒有檢查外鍵約束。我怎樣才能檢查外鍵約束?我如何使用sqllite啓用pytest中的外鍵檢查
顯然,foreign key constraints weren't even possible until sqlite 3,但我真的不知道我運行的是什麼版本,因爲我沒有用於sqlite的cli,但它只是被django自動包含在內? (我使用的是django 1.9.10),但是sqlite 3在2009年推出,所以這不是問題嗎?
也許it must still be enabled by the application at runtime, using the PRAGMA foreign_keys command.,但我不知道如何讓我的測試做到這一點?
[UPDATE] 因此,它看起來像是開箱即用的sqlite沒有檢查它們。
class Referenced(models.Model):
pass
class Referencer(models.Model):
fk = models.ForeignKey(Referenced)
>>> Referencer.objects.create(fk_id=-1)
<Referencer>
>>> Referencer.objects.all()[0].fk
DoesNotExist