Opened 8 years ago
Closed 8 years ago
#27217 closed Bug (fixed)
makemigrations crashes with "'SpatialRefSysMixin' has no attribute '_meta'" on PostGIS
Reported by: | Satish V Madala | Owned by: | nobody |
---|---|---|---|
Component: | GIS | Version: | dev |
Severity: | Release blocker | Keywords: | |
Cc: | Sergey Fedoseev | Triage Stage: | Accepted |
Has patch: | yes | Needs documentation: | no |
Needs tests: | no | Patch needs improvement: | no |
Easy pickings: | no | UI/UX: | no |
Description (last modified by )
Am Using postgis as a backend and makemigrations threw back the error:
Traceback (most recent call last): File "manage.py", line 22, in <module> execute_from_command_line(sys.argv) File "/home/satish/work/django/django/core/management/__init__.py", line 366, in execute_from_command_line utility.execute() File "/home/satish/work/django/django/core/management/__init__.py", line 358, in execute self.fetch_command(subcommand).run_from_argv(self.argv) File "/home/satish/work/django/django/core/management/base.py", line 294, in run_from_argv self.execute(*args, **cmd_options) File "/home/satish/work/django/django/core/management/base.py", line 345, in execute output = self.handle(*args, **options) File "/home/satish/work/django/django/core/management/commands/makemigrations.py", line 173, in handle migration_name=self.migration_name, File "/home/satish/work/django/django/db/migrations/autodetector.py", line 47, in changes changes = self._detect_changes(convert_apps, graph) File "/home/satish/work/django/django/db/migrations/autodetector.py", line 198, in _detect_changes self._optimize_migrations() File "/home/satish/work/django/django/db/migrations/autodetector.py", line 362, in _optimize_migrations migration.operations = MigrationOptimizer().optimize(migration.operations, app_label=app_label) File "/home/satish/work/django/django/db/migrations/optimizer.py", line 38, in optimize result = self.optimize_inner(operations, app_label) File "/home/satish/work/django/django/db/migrations/optimizer.py", line 53, in optimize_inner result = operation.reduce(other, in_between, app_label) File "/home/satish/work/django/django/db/migrations/operations/models.py", line 213, in reduce return super(CreateModel, self).reduce(operation, in_between, app_label=app_label) File "/home/satish/work/django/django/db/migrations/operations/models.py", line 39, in reduce not operation.references_model(self.name, app_label) File "/home/satish/work/django/django/db/migrations/operations/models.py", line 119, in references_model model_app_label, model_name = self.model_to_key(model) File "/home/satish/work/django/django/db/migrations/operations/models.py", line 133, in model_to_key return model._meta.app_label, model._meta.object_name AttributeError: type object 'SpatialRefSysMixin' has no attribute '_meta'
Is GeoDjango not ready for 1.11 dev version yet?
Change History (10)
comment:1 by , 8 years ago
Description: | modified (diff) |
---|
comment:2 by , 8 years ago
Summary: | GeoDjango issues on Django 1.11.dev version → makemigrations crashes with "'SpatialRefSysMixin' has no attribute '_meta'" on PostGIS |
---|---|
Triage Stage: | Unreviewed → Accepted |
comment:3 by , 8 years ago
Reproduction steps posted on mailing list:
- Create a python3 virtualenv and activate it
- pip install git+https://github.com/django/django.git
- pip install psycopg2
- django-admin startproject projectname
- Change the db backend to postgis in settings file
- python manage.py makemigrations
follow-up: 5 comment:4 by , 8 years ago
If above steps are accurate, then please verify if adding 'django.contrib.gis' to INSTALLED_APPS (which you haven't done in above steps) resolves the issue. The documentation on this is ambiguous. It suggests one can start the dev server without this step (and probably can), but the GeoDjango framework is improperly configured at that time.
comment:5 by , 8 years ago
I've missed documenting the step, I've added 'django.contrib.gis' to INSTALLED_APPS. Issue is same.
Replying to melvyn-sopacua:
If above steps are accurate, then please verify if adding 'django.contrib.gis' to INSTALLED_APPS (which you haven't done in above steps) resolves the issue. The documentation on this is ambiguous. It suggests one can start the dev server without this step (and probably can), but the GeoDjango framework is improperly configured at that time.
comment:6 by , 8 years ago
Cc: | added |
---|
comment:8 by , 8 years ago
Not so far but it should be only a matter of adjusting this line to also check for isinstance(base, models.base.ModelBase)
.
Bisected the regression to 7fc4c1db627807874966e4f96b34cff7c9af886f. Steps to reproduce and a sample project are on django-users.