0

GeoDjangoプロジェクトで「./manage.pyevolve--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.

ただし、Webアプリは*backends.postgisデータベースエンジンを使用して正常に実行されます。これは、django-evolutionの問題にすぎないようです。

どうすれば進化を機能させることができるかというアイデアはありますか?ありがとう。

4

1 に答える 1

0

に追加するだけでこれを解決しDATABASE_ENGINE = "postgresql"ましたsettings.py

でこの変数を使用するコードを見るとsite-packages/django_evolution-0.6.0-py2.7.egg/tests/utils.py(パスはおそらく少し異なるでしょう)、utils.pyデータベースに応じて のファイルの 1 つを呼び出しますdjango_evolution-0.6.0-py2.7.egg/django_evolution/db。db ディレクトリのファイルを見るpostgresql.pyと、データベースの実装に対していくつかの基本的なテストを実行する短いスクリプトのようです。postgis バックエンドはすぐに使用できる postgres と大きく異なる可能性は低いため、postgresql をDATABASE_ENGINE値として使用しても安全だと思います。

于 2013-03-18T16:39:07.900 に答える