2011-01-02 7 views
15

pracuję nad aplikacji przy użyciu Django i MySQL, staram się pracować na kursie z tego tutajgeodjango MySQL

http://docs.djangoproject.com/en/1.2/ref/contrib/gis/tutorial/

ale nie udało się chwilą wpadłem syncdb z następującym błędem

AttributeError: 'DatabaseOperations' object has no attribute 'geo_db_type' 

Kiedy czytam dookoła, mówi, że można to rozwiązać, jeśli zmieni się backend, aby użyć usługi postGIS. Czy istnieje sposób, aby nadal używać mysql jako mojego backendu, a jednocześnie móc korzystać z geodjango? jeśli nie, czy można użyć obu w tym samym projekcie?

Pozdrawiam,

Odpowiedz

32

Ustaw django.contrib.gis.db.backends.mysql w ustawieniach. DATABASE ustawienia silnika db.

+0

"Używany typ tabeli nie obsługuje indeksów SPATIAL" – Cerin

+1

gdzie dokładnie to umieścisz? – raaj

5

Czy twój MySQL ma zainstalowane typy danych przestrzennych? Co otrzymasz, jeśli zrobić:

CREATE TABLE geom (g GEOMETRY); 

Jeśli nie rozpoznaje typ geometrii, to trzeba uaktualnić/rekompilacji/przekonfigurować MySQL.

+0

Wypróbowałem i zadziałało, stół został stworzony. Cokolwiek z instalacji Django muszę zrobić? –

+0

Znalazłem problem. Miałem zaktualizować plik settings.py za pomocą nowego sterownika mysql gis "django.db.backends.mysql". Teraz działa :) –