1
我为我的Django应用程序安装了pgcryto扩展使用PostgreSQL数据库。在生产服务器上,我手动创建一个用户,然后运行CREATE EXTENSION pgcrypto;
以安装扩展。Django测试与pgcrypto失败
然而,当我运行./manage.py test
,因为我的模型是使用来自pgcrypto_expressions
的EncryptedTextField
场失败,这是自动创建的测试数据库不具有自然安装的扩展(因为它需要创建的每个数据库中明确启用)。在Django设置我的测试数据库并开始迁移的时间之间,如何“注入”代码/命令?
或者说,我该如何在PostgreSQL中启用全局扩展?
您可以创建一个安装扩展的迁移 - 请参阅示例[在文档](https://docs.djangoproject.com/en/1.11/ref/contrib/postgres/operations/#creating-extension-using -migrations)。 – Alasdair
@Alasdair太棒了,正是我所需要的。我已经快速浏览了一下,但是因为我仍然是一个noob,我在哪里放这个代码?任何文件,它会捡起来?我是否需要将它插入到001 _...迁移文件中(但每次都会被覆盖) – strangetimes
我不明白它为什么会被覆盖。它可以进入你喜欢的任何应用程序的迁移文件。理想情况下,将其添加为应用程序的“0001_initial”迁移。只要使用'EncryptedTextField'的任何迁移都将此迁移作为[依赖项](https://docs.djangoproject.com/en/1.11/topics/migrations/#dependencies),就应该可以工作。 – Alasdair