2012-09-06 49 views
0

工作,我不能跑「./manage.py發展--hint --execute」我GeoDjango內置項目。它退出,出現錯誤:Django的進化不會django.contrib.gis.db.backends.postgis

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. 

然而,Web應用程序運行正常使用* backends.postgis數據庫引擎。這似乎只是一個Django進化問題。

任何想法如何,我可以進化工作? 謝謝。

回答

0

我解決了這個僅僅通過我的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值。