【问题标题】:django-evolution doesn't work with django.contrib.gis.db.backends.postgisdjango-evolution 不适用于 django.contrib.gis.db.backends.postgis
【发布时间】:2012-08-31 01:26:24
【问题描述】:

我无法为我的 GeoDjango 项目运行“./manage.py Evolution --hint --execute”。它退出并出现错误:

File "/home/viktor/.virtualenvs/senv/lib/python2.6/site-packages/django_evolution-0.6.7-py2.6.egg/django_evolution/db/__init__.py", line 18, in     __init__
module = __import__('.'.join(module_name),{},{},[''])
ImportError: No module named django.contrib.gis.db.backends.postgis

这是突变提示:

from django_evolution.mutations import AddField, DeleteField
from django.contrib.gis.db.models.fields import PointField


MUTATIONS = [
    AddField('Geodata', 'position_real', PointField, initial=<<USER VALUE REQUIRED>>),
    AddField('Geodata', 'position', PointField, initial=<<USER VALUE REQUIRED>>),
    DeleteField('Geodata', 'real_lat'),
    DeleteField('Geodata', 'lat'),
    DeleteField('Geodata', 'lng'),
    DeleteField('Geodata', 'real_lng')
]
#----------------------
Trial evolution successful.

但是,使用 *backends.postgis 数据库引擎的 Web 应用程序运行良好。这似乎只是一个 django-evolution 问题。

有什么想法可以让进化发挥作用吗? 谢谢。

【问题讨论】:

    标签: python django postgis geodjango django-evolution


    【解决方案1】:

    我通过在我的settings.py 中添加DATABASE_ENGINE = "postgresql" 解决了这个问题。

    查看在site-packages/django_evolution-0.6.0-py2.7.egg/tests/utils.py 中使用此变量的代码(您的路径可能会略有不同),utils.py 将根据数据库调用django_evolution-0.6.0-py2.7.egg/django_evolution/db 中的文件之一。然后查看 db 目录中的 postgresql.py 文件,它似乎是一个简短的脚本,可以针对您的数据库实现运行一些基本测试。由于 postgis 后端与开箱即用的 postgres 不太可能有显着不同,我相信使用 postgresql 作为您的 DATABASE_ENGINE 值是安全的。

    【讨论】:

      猜你喜欢
      • 2012-01-13
      • 2011-11-07
      • 1970-01-01
      • 1970-01-01
      • 2012-12-23
      • 2018-05-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多