vendredi 28 novembre 2014

Spatialite in GeoDjango - "...they do not properly define db_type..."


I've started a new project and choose GeoDjango for it. Because I already developed with Django and sqlite as a DBMS and all worked perfectly fine for me, I found it a great option to use spatialite to make the first development steps and perhaps switch to PostGIS later on, when the app needs scaling.


Although the docs tell different I faced a couple of problems now bringing the spatialite datastore up to life.


First I created a new empty sqlite database file on the sqlite command line (because let django do that for me with syncdb resulted in an error where syncdb didn't hae the geometry_columns table to register my spatial table...so it's about creating the spatial repository first).


Second I ran spatialite database.db "SELECT InitSpatialMetaData();" to create the repository tables.


At least I ran python manage.py syncdb to create my model tables. It does a couple of thing, but ends up in the following error:



Operations to perform:
Synchronize unmigrated apps: gis
Apply all migrations: admin, contenttypes, walmap, auth, sessions
Synchronizing apps without migrations:
Creating tables...
Installing custom SQL...
Installing indexes...
Running migrations:
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
Applying sessions.0001_initial... OK
Applying walmap.0001_initial... OK
Applying walmap.0002_campsite_capacity...AddGeometryColumn: "duplicate column name: point"
OK
Applying walmap.0003_auto_20141126_1434...Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
:
:
File "/home/juergen/Development/wal/env/local/lib/python2.7/site-packages/django/db/backends/schema.py", line 460, in alter_field
new_field,
ValueError: Cannot alter field walmap.Campsite.point into walmap.Campsite.point - they do not properly define db_type (are you using PostGIS 1.5 or badly-written custom fields?)


The model class just consists of an id field, a name, a slug, a Point Geometry and an int field for capacity, so nothing special here.


Any ideas about this issue?


EDIT: SpatialLite is version 4.1.1


PROJ.4 is version 4.8.0


GEOS is version 3.4.2


Django version 1.7


python version 2.7.6





Aucun commentaire:

Enregistrer un commentaire