python - 使用 PostGIS 数据库测试 GeoDjango 应用程序

标签 python django postgresql testing geodjango

我正在尝试在全新的 Django 应用程序上启用测试。它必须运行几何测试。我的 Postgres 安装在 Postgres.app(使用 Postgis 2)中,我的默认数据库运行得很好(Django 应用程序同步、创建等没有问题),但是当我运行时

manage.py test

我收到错误:

django.db.utils.ProgrammingError: type "geography" does not exist LINE 4: "geom" geography(GEOMETRY,4326) NOT NULL

完整错误:https://gist.github.com/dyve/11dcd455aa5a25628773

我知道 Django 创建了一个 Postgres DB 来进行测试。我怀疑它没有在测试数据库上正确启用 PostGIS 扩展。

如果这里有人能帮助我进行测试,我将不胜感激。

最佳答案

提出问题就是回答问题......

我查看了 Django 源代码,发现它测试了 template_postgis 的存在。如果找到,则它适用于 Postgis < 2.0。如果未找到,则适用于 Postgis >= 2。

你瞧,我的数据库中出现了一个遗留的 template_postgis。我重命名了它(只是保留它,直到我确定其他项目不需要它为止),并且测试工作正常。

关于python - 使用 PostGIS 数据库测试 GeoDjango 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24730189/

相关文章:

python - Django:用户登录时发出信号?

django - 如何确保查询集将按有效字段排序 - django

sql - 从 postgres View 中选择时,Django 返回错误结果

python - 使用 Pandas 分配方法拆分字符串并分配给两列

python - 位操作给出错误的输出

python - django 有超过 1 个外键错误

django - 在 dockerized 项目上运行 Django 迁移

python - "' str ' object has no attribute ' 将 slug 传递给 django 表单时得到 '"

sql - 从每个 id 中获取最后一行并将其与计数进行比较

sql - PostgreSQL 将列类型从 DATERANGE 更改为 TSTZRANGE 并迁移数据