Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我<APP>/<MODEL>.sql根据Django 文档创建了一个文件,以便在运行后使用钩子传递任意 SQL syncdb。这个文件里面有两个 PostgreSQL 的函数声明和一个创建数据库视图的语句。这在生产中运行良好,但是——正如文档所说——代码没有为测试数据库运行,因为建议使用固定装置。现在我的单元测试缺少关键的数据库视图和功能,因此失败。
<APP>/<MODEL>.sql
syncdb
如何测试依赖原始 sql 函数/视图的代码?
更新
我挖出了这张票,它直接涉及这个问题,并提出了一个小的解决方法。
我发现处理这个问题的最佳方法是将自定义 SQL 代码放入 Django 的迁移中。
Django 和 South(它是 Django 自己的迁移框架的前身)都提供了创建自定义(即空)迁移的命令。用于创建数据库视图或函数的代码可以放入一个空迁移中,并且将在迁移新安装的项目或运行测试套件时运行。
可以在此处找到有关如何使用 South 对数据库视图使用自定义迁移的教程。Django 自己的迁移框架中的语法有点不同,但文档RunSQL说明了这一切。
RunSQL
只需像它们本身的 sql 一样在本地运行它们。
或者
使用sqlcustom
不要打扰他们;您可能会发现自己在上游尝试并通过 ORM 充分利用这些功能和视图。
考虑另一个更适合使用本机 sql 的 python 框架(我敢说)。