#28888: Index added to _meta.indexes with Meta.indexes=[] yields two equal addIndex() operations. --------------------------------------------------+------------------------ Reporter: Jan Pieter Waagmeester | Owner: nobody Type: Uncategorized | Status: new Component: Migrations | Version: 1.11 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 | --------------------------------------------------+------------------------ I use a custom field derived from `django.contrib.postgres.fields.JSONField`, which adds an `GinIndex` to `model._meta.indexes`: {{{ from django.contrib.postgres.fields import JSONField from django.contrib.postgres.indexes import GinIndex
class CustomJSONField(JSONField): def contribute_to_class(self, cls, name): super(CustomJSONField, self).contribute_to_class(cls, name) index = GinIndex(fields=[name]) index.set_name_with_model(cls) cls._meta.indexes.append(index) }}} When used in a model like this, {{{ class Blog(models.Model): title = models.CharField(max_length=100) json = CustomJSONField() }}} Migrations for model and index are created as expected: {{{ ./manage.py --version 1.11.8 ./manage.py makemigrations app Migrations for 'app': app/migrations/0001_initial.py - Create model Blog - Create index app_blog_json_2cf556_gin on field(s) json of model blog }}} But when I add an empty list of indexes like this: {{{ class Blog(models.Model): title = models.CharField(max_length=100) json = CustomJSONField() class Meta: indexes = [] }}} two indexes are created: {{{ rm -rf app/migrations ./manage.py --version 1.11.8 ./manage.py makemigrations app Migrations for 'app': app/migrations/0001_initial.py - Create model Blog - Create index app_blog_json_2cf556_gin on field(s) json of model blog - Create index app_blog_json_2cf556_gin on field(s) json of model blog }}} Which of course results in `django.db.utils.ProgrammingError: relation "app_blog_json_2cf556_gin" already exists`. -- Ticket URL: <https://code.djangoproject.com/ticket/28888> 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 django-updates+unsubscr...@googlegroups.com. To post to this group, send email to django-updates@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/django-updates/049.87973ef6a467674c978e56432b43dfa7%40djangoproject.com. For more options, visit https://groups.google.com/d/optout.