首页 > 解决方案 > 如何解决测试中的 Django hstore 错误

问题描述

在我正在合作的应用程序的某些地方,HStoreField使用了 a(来自django.contrib.postgres.fields)。该应用程序本身工作正常,没有构建错误。但是当我运行测试时,我遇到了一个问题:

django.db.utils.ProgrammingError: type "hstore" does not exist

根据我的发现,问题出在 Postgres 上,所以我尝试在 psql: 中运行以下命令在create extension hstore;数据库上template1。现在,在列出扩展名 ( \dx) 时会显示该扩展名:

hstore  | 1.5     | public     | data type for storing sets of (key, value) pairs

由于错误仍然存​​在,这显然不是解决方案。我应该尝试什么?

编辑:我也从设置文件中运行create extension hstore;default数据库,验证了它已创建,但仍然遇到同样的问题。

标签: djangopostgresqlhstoredjango-tests

解决方案


当我打开 pdAdmin 以更好地查看时,我发现了问题所在。在我的设置文件中,我有一个默认数据库mydb. 我create extension hstore;在该数据库上运行 psql,但我错过的是为测试创建了一个新数据库:test_mydb. 我连接到该数据库并在那里运行相同的命令,之后测试开始工作。


推荐阅读