如何解决测试中的 Django hstore 错误
How to resolve a Django hstore error in tests
在我正在协作的应用程序中的某些点,使用了 HStoreField
(来自 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
数据库上也验证了它的创建,但仍然遇到同样的问题。
当我打开 pdAdmin 仔细查看时,我发现了问题所在。在我的设置文件中,我有一个默认数据库 mydb
。我在该数据库的 psql 中 运行 create extension hstore;
,但我错过的是为测试创建了一个新数据库:test_mydb
。我连接到那个数据库并在那里 运行 使用相同的命令,之后测试开始工作。
在我正在协作的应用程序中的某些点,使用了 HStoreField
(来自 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
数据库上也验证了它的创建,但仍然遇到同样的问题。
当我打开 pdAdmin 仔细查看时,我发现了问题所在。在我的设置文件中,我有一个默认数据库 mydb
。我在该数据库的 psql 中 运行 create extension hstore;
,但我错过的是为测试创建了一个新数据库:test_mydb
。我连接到那个数据库并在那里 运行 使用相同的命令,之后测试开始工作。