I am having Neo4Django in my django based application and trying to use two databases at the sametime : Neo4j and PostGIS. So i configured settings.py as suggested in the docs (http://neo4django.readthedocs.org) and models.py as well.
When i try to run syncdb , i am getting this message
You just installed Django's auth system, which means you don't have any superusers defined.
Would you like to create one now? (yes/no): yes
Username (leave blank to use 'postgres'):
E-mail address: postgres@gmail.com
Password:
Password (again):
Superuser created successfully.
Installing custom SQL ...
Installing indexes ...
Installed 0 object(s) from 0 fixture(s)
but when i check if the table and the graph were created, i find nothing !
i am using django 1.4 and neo4j 1.9.M05
here is how i declared my databases in settings.py:
DATABASES = {
'default': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'geodjango',
'USER': 'postgres',
}
}
NEO4J_DATABASES = {
'default' : {
'HOST':'127.0.0.1',
'PORT':7474,
'ENDPOINT':'/db/data/'
}
}
DATABASE_ROUTERS = ['neo4django.utils.Neo4djangoIntegrationRouter']
and i declared my models.py like this :
from neo4django.db import models
from django.contrib.gis.db import models as gis
class Airport(models.NodeModel):
name = models.StringProperty()
iata = models.StringProperty()
icao= models.StringProperty()
city = models.Relationship('self',rel_type='isAT')
#geographical database for storing entities coordinates
class pointsOfInterest(gis.Model):
nodeid = gis.IntegerField()
longitude = gis.FloatField()
latitude = gis.FloatField()
# GeoDjango-specific: a geometry field (MultiPolygonField), and
# overriding the default manager with a GeoManager instance.
objects = gis.GeoManager()
when i run `python manage.py sqlall testapp` (where testapp is my app and after deleting the neo4j models , otherwise it won't work ), i am getting that sql that permit to create the table :
BEGIN;
CREATE TABLE "testapp_pointsofinterest" (
"id" serial NOT NULL PRIMARY KEY,
"nodeid" integer NOT NULL,
"longitude" double precision NOT NULL,
"latitude" double precision NOT NULL
)
;
COMMIT;
Then i try to create an instance of this table in the `python manage.py shell` i am getting this :
postgres@anas-desktop:/home/anas/Desktop/testNeo4Django$ ./manage.py shell
Python 2.6.5 (r265:79063, Oct 1 2012, 22:07:21)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)
>>> from testNeo4Django.testapp.models import pointsOfInterest
>>>
>>> poi= pointsOfInterest.objects.create()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 137, in create
return self.get_query_set().create(**kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 377, in create
obj.save(force_insert=True, using=self.db)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 463, in save
self.save_base(using=using, force_insert=force_insert, force_update=force_update)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/base.py", line 551, in save_base
result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/manager.py", line 203, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/query.py", line 1593, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/usr/local/lib/python2.6/dist-packages/django/db/models/sql/compiler.py", line 912, in execute_sql
cursor.execute(sql, params)
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/util.py", line 40, in execute
return self.cursor.execute(sql, params)
File "/usr/local/lib/python2.6/dist-packages/django/db/backends/postgresql_psycopg2/base.py", line 52, in execute
return self.cursor.execute(query, args)
IntegrityError: null value in column "nodeid" violates not-null constraint
Any ideas about this ?
thanks for your help
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To post to this group, send email to django-users@googlegroups.com.
Visit this group at http://groups.google.com/group/django-users?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.
No comments:
Post a Comment