首页 > 解决方案 > django.db.utils.ProgrammingError:类型“hstore”不存在

问题描述

大家好,所以我知道这个问题已经被问过很多次了,但是所提供的解决方案似乎并不能解决我的问题的根源。

根据我所见,解决方案是运行create extension hstore.

但是,django.db.utils.ProgrammingError: type "hstore" does not exist当我尝试运行 django 测试时出现错误,即python manage.py test test_function

我不熟悉 django 测试,但从我正在使用的代码库中看到的是,当我运行 django test 命令时,django 测试正在创建一个测试数据库。

当我检查测试数据库有哪些扩展可用时,\dx我发现它没有hstore. 如果我运行create extension hstore,则会创建 hstore 扩展。问题是,每当我重新运行 django 测试时,python manage.py test test_function它都会告诉我测试数据库已经存在,我需要先将其删除,否则命令会退出。通过删除数据库,刚刚添加的扩展名也会被删除,因此当我python manage.py test test_function再次运行时,我最终会遇到同样的错误。

如何摆脱错误?谢谢你。

标签: django

解决方案


原来我需要做的是使用以下命令创建默认 template1 的 hstore 扩展:

psql template1 -c 'create extension hstore;'

推荐阅读