我有一个使用本地 PostgreSQL 服务器的 Django 项目。 我正在使用调试器来调试我遇到的一些奇怪的错误。当调试器在其中一项测试中停止时,我尝试查看测试数据库。我看到这个新数据库(test_project1)并且所有方案都按其应有的方式定义。但所有桌子都是空的。
我知道桌子不是空的:
然而,当我尝试使用
pgAdmin3
或 psql
访问数据库时,我看不到任何数据。
知道这是怎么回事吗? Django 使用某种复杂的缓存机制吗?
可以通过继承
django.test.TestCase
而不是django.test.TransactionTestCase
来避免TestCase
正在使用的数据库事务。 然后数据将在数据库中可见。
您可能只想在调试时暂时执行此操作,以便在其余时间获得
django.test.TestCase
的性能优势。
Django 文档:
django.test.TransactionTestCase
django.test.TestCase