我有一个 django 项目,它使用带有许多 UDF 的 postgres 数据库。UDF 是用 plpythonu 编写的。由于 plpyhtonu 是一种不受信任的语言,因此只有数据库超级用户才能使用它来创建 UDF。这带来了一个严重的问题,因为我无法在测试套件中以编程方式创建它们。现在我看到两个选项:
- 修改 django.db.backends.creation._create_test_db 以从模板创建测试数据库,该模板已经加载了我的 UDF。这似乎很难维护。
- 创建一个具有 MD5 身份验证的超级用户,并使用 psycopg2 在测试套件中加载 UDF。这似乎不安全。
有没有更可怕的方法可以做到这一点?
谢谢。