#28499: makemigrations fails on model with geometry field when the geo database
is
not the defaul one
--------------------------------------+------------------------
Reporter: Kaveh | Owner: nobody
Type: Bug | Status: new
Component: GIS | Version: 1.8
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
--------------------------------------+------------------------
Create a django app with two databases defined like this:
{{{
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'whatever'
...
},
'postgres': {
'ENGINE': 'django.contrib.gis.db.backends.postgis',
'NAME': 'whatever'
}
}
}}}
and here is the database router:
{{{
POSTGRES_APPS = ['app1']
class PostgresRouter(object):
def db_for_read(self, model, **hints):
if model._meta.app_label in POSTGRES_APPS:
return 'postgres'
return None
def db_for_write(self, model, **hints):
if model._meta.app_label in POSTGRES_APPS:
return 'postgres'
return None
def allow_relation(self, obj1, obj2, **hints):
if {obj1._meta.app_label,
obj2._meta.app_label}.issubset(set(POSTGRES_APPS)):
return True
return None
def allow_migrate(self, db, app_label, model_name=None, **hints):
if db == 'postgres':
return app_label in POSTGRES_APPS
else:
return app_label not in POSTGRES_APPS
}}}
Create an app called `app1` and add it to `INSTALLED_APPS`:
{{{
class Shapes(models.Model):
shape = models.GeometryField()
}}}
Now if you run `makemigrations`, it throws the following error:
`AttributeError: 'DatabaseOperations' object has no attribute
'geo_db_type'`
Seems like the error is because Django is using the default connection,
i.e. mysql, for handling the geomtry field in app1, though this app is
supposed to be part of the gis enabled database, i.e. postgres.
--
Ticket URL: <https://code.djangoproject.com/ticket/28499>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/048.3661aad8c8937fbcc94e0c8c3a98812b%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.