gpt4 book ai didi

django - 如何测试在数据库中使用 UDF 的 Django 站点?

转载 作者:行者123 更新时间:2023-11-29 12:22:46 25 4
gpt4 key购买 nike

我有一个 django 项目,它使用带有许多 UDF 的 postgres 数据库。 UDF 是用 plpythonu 编写的。由于 plpyhtonu 是一种不受信任的语言,因此只有数据库 super 用户才能使用它来创建 UDF。这造成了一个严重的问题,因为我无法在测试套件中以编程方式创建它们。现在我看到两个选项:

  1. 修改 django.db.backends.creation._create_test_db 以从模板创建测试数据库,该模板已经加载了我的 UDF。这似乎很难维护。
  2. 创建一个具有 MD5 身份验证的 super 用户,并使用 psycopg2 在测试套件中加载 UDF。这似乎不安全。

有没有更简单的方法可以做到这一点?

谢谢。

最佳答案

我不知道 PG UDF 模型,只知道 MySQL 和 SQLite 的。其他一些解决方法可能是:

  1. 创建一个仅用于测试的 PG 实例,将其隔离,这样潜在的安全问题就不会成为问题。毕竟数据库很便宜。
  2. 如果 UDF 很简单(或者测试数据大小使它们变得简单),则在 SQLite 中重新创建它们并使用该数据库进行测试。这假定您不需要将 plpython 功能作为项目的一部分进行测试。
  3. 如果 UDF 功能比项目的其余部分稳定得多,则将 UDF 代码拆分到它自己的子项目中,对于其余代码,假定 UDF 将存在。至少这将使大部分代码可以自动化,只有 UDF 代码需要手动干预来指定密码。

关于django - 如何测试在数据库中使用 UDF 的 Django 站点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5690842/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com