diff options
Diffstat (limited to 'archaeological_warehouse/migrations/0101_squashed.py')
| -rw-r--r-- | archaeological_warehouse/migrations/0101_squashed.py | 374 | 
1 files changed, 374 insertions, 0 deletions
diff --git a/archaeological_warehouse/migrations/0101_squashed.py b/archaeological_warehouse/migrations/0101_squashed.py new file mode 100644 index 000000000..fb4745c10 --- /dev/null +++ b/archaeological_warehouse/migrations/0101_squashed.py @@ -0,0 +1,374 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.11.27 on 2020-01-23 18:21 +from __future__ import unicode_literals + +import datetime +from django.conf import settings +import django.contrib.gis.db.models.fields +import django.contrib.postgres.fields.jsonb +import django.contrib.postgres.indexes +import django.contrib.postgres.search +import django.core.validators +from django.db import migrations, models +import django.db.models.deletion +import ishtar_common.models +import re +import uuid + + +class Migration(migrations.Migration): +    dependencies = [ +        migrations.swappable_dependency(settings.AUTH_USER_MODEL), +        ('ishtar_common', '0201_squashed'), +        ("archaeological_warehouse", "0044_auto_20191216_1050") +    ] + +    operations = [ +        migrations.CreateModel( +            name='Collection', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), +                ('last_modified', models.DateTimeField(auto_now=True)), +                ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('need_update', models.BooleanField(default=False, verbose_name='Need update')), +                ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), +                ('history_date', models.DateTimeField(default=datetime.datetime.now)), +                ('name', models.CharField(blank=True, max_length=200, null=True, verbose_name='Name')), +                ('description', models.TextField(blank=True, null=True, verbose_name='Description')), +                ('history_creator', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator')), +                ('history_modifier', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor')), +                ('imports', models.ManyToManyField(blank=True, related_name='imported_archaeological_warehouse_collection', to='ishtar_common.Import')), +                ('lock_user', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by')), +            ], +            options={ +                'verbose_name': 'Collection', +                'verbose_name_plural': 'Collection', +                'ordering': ('name',), +            }, +            bases=(ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models.FixAssociated, ishtar_common.models.CascasdeUpdate), +        ), +        migrations.CreateModel( +            name='Container', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), +                ('qrcode', models.ImageField(blank=True, max_length=255, null=True, upload_to=ishtar_common.models.get_image_path)), +                ('x', models.FloatField(blank=True, null=True, verbose_name='X')), +                ('y', models.FloatField(blank=True, null=True, verbose_name='Y')), +                ('z', models.FloatField(blank=True, null=True, verbose_name='Z')), +                ('estimated_error_x', models.FloatField(blank=True, null=True, verbose_name='Estimated error for X')), +                ('estimated_error_y', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Y')), +                ('estimated_error_z', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Z')), +                ('point', django.contrib.gis.db.models.fields.PointField(blank=True, dim=3, null=True, srid=4326, verbose_name='Point')), +                ('point_2d', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Point (2D)')), +                ('point_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Point source')), +                ('point_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Point source item')), +                ('multi_polygon', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon')), +                ('multi_polygon_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Multi-polygon source')), +                ('multi_polygon_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Multi polygon source item')), +                ('last_modified', models.DateTimeField(auto_now=True)), +                ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('need_update', models.BooleanField(default=False, verbose_name='Need update')), +                ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), +                ('history_date', models.DateTimeField(default=datetime.datetime.now)), +                ('uuid', models.UUIDField(default=uuid.uuid4)), +                ('reference', models.TextField(verbose_name='Container ref.')), +                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), +                ('cached_label', models.TextField(blank=True, db_index=True, null=True, verbose_name='Localisation')), +                ('cached_location', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached location')), +                ('cached_division', models.TextField(blank=True, db_index=True, null=True, verbose_name='Cached division')), +                ('index', models.IntegerField(default=0, verbose_name='Container ID')), +                ('old_reference', models.TextField(blank=True, null=True, verbose_name='Old reference')), +                ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +            ], +            options={ +                'verbose_name': 'Container', +                'verbose_name_plural': 'Containers', +                'ordering': ('cached_label',), +                'permissions': (('view_container', 'Can view all Containers'), ('view_own_container', 'Can view own Container'), ('add_own_container', 'Can add own Container'), ('change_own_container', 'Can change own Container'), ('delete_own_container', 'Can delete own Container')), +            }, +            bases=(ishtar_common.models.DocumentItem, ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models.FixAssociated, ishtar_common.models.CascasdeUpdate, ishtar_common.models.ImageContainerModel, ishtar_common.models.OwnPerms, ishtar_common.models.MainItem), +        ), +        migrations.CreateModel( +            name='ContainerLocalisation', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('reference', models.CharField(default='', max_length=200, verbose_name='Reference')), +                ('container', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='division', to='archaeological_warehouse.Container', verbose_name='Container')), +            ], +            options={ +                'verbose_name': 'Container localisation', +                'verbose_name_plural': 'Container localisations', +                'ordering': ('container', 'division__order'), +            }, +        ), +        migrations.CreateModel( +            name='ContainerType', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('label', models.TextField(verbose_name='Label')), +                ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z', 32), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')], verbose_name='Textual ID')), +                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +                ('length', models.IntegerField(blank=True, null=True, verbose_name='Length (mm)')), +                ('width', models.IntegerField(blank=True, null=True, verbose_name='Width (mm)')), +                ('height', models.IntegerField(blank=True, null=True, verbose_name='Height (mm)')), +                ('volume', models.FloatField(blank=True, null=True, verbose_name='Volume (l)')), +                ('reference', models.CharField(blank=True, max_length=300, null=True, verbose_name='Ref.')), +            ], +            options={ +                'verbose_name': 'Container type', +                'verbose_name_plural': 'Container types', +                'ordering': ('label',), +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='Warehouse', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('data', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('search_vector', django.contrib.postgres.search.SearchVectorField(blank=True, help_text='Auto filled at save', null=True, verbose_name='Search vector')), +                ('qrcode', models.ImageField(blank=True, max_length=255, null=True, upload_to=ishtar_common.models.get_image_path)), +                ('x', models.FloatField(blank=True, null=True, verbose_name='X')), +                ('y', models.FloatField(blank=True, null=True, verbose_name='Y')), +                ('z', models.FloatField(blank=True, null=True, verbose_name='Z')), +                ('estimated_error_x', models.FloatField(blank=True, null=True, verbose_name='Estimated error for X')), +                ('estimated_error_y', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Y')), +                ('estimated_error_z', models.FloatField(blank=True, null=True, verbose_name='Estimated error for Z')), +                ('point', django.contrib.gis.db.models.fields.PointField(blank=True, dim=3, null=True, srid=4326, verbose_name='Point')), +                ('point_2d', django.contrib.gis.db.models.fields.PointField(blank=True, null=True, srid=4326, verbose_name='Point (2D)')), +                ('point_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Point source')), +                ('point_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Point source item')), +                ('multi_polygon', django.contrib.gis.db.models.fields.MultiPolygonField(blank=True, null=True, srid=4326, verbose_name='Multi polygon')), +                ('multi_polygon_source', models.CharField(blank=True, choices=[('T', 'Town'), ('P', 'Precise'), ('M', 'Polygon')], max_length=1, null=True, verbose_name='Multi-polygon source')), +                ('multi_polygon_source_item', models.CharField(blank=True, max_length=100, null=True, verbose_name='Multi polygon source item')), +                ('last_modified', models.DateTimeField(auto_now=True)), +                ('history_m2m', django.contrib.postgres.fields.jsonb.JSONField(blank=True, default={})), +                ('need_update', models.BooleanField(default=False, verbose_name='Need update')), +                ('locked', models.BooleanField(default=False, verbose_name='Item locked for edition')), +                ('address', models.TextField(blank=True, null=True, verbose_name='Address')), +                ('address_complement', models.TextField(blank=True, null=True, verbose_name='Address complement')), +                ('postal_code', models.CharField(blank=True, max_length=10, null=True, verbose_name='Postal code')), +                ('town', models.CharField(blank=True, max_length=150, null=True, verbose_name='Town (freeform)')), +                ('country', models.CharField(blank=True, max_length=30, null=True, verbose_name='Country')), +                ('alt_address', models.TextField(blank=True, null=True, verbose_name='Other address: address')), +                ('alt_address_complement', models.TextField(blank=True, null=True, verbose_name='Other address: address complement')), +                ('alt_postal_code', models.CharField(blank=True, max_length=10, null=True, verbose_name='Other address: postal code')), +                ('alt_town', models.CharField(blank=True, max_length=70, null=True, verbose_name='Other address: town')), +                ('alt_country', models.CharField(blank=True, max_length=30, null=True, verbose_name='Other address: country')), +                ('phone', models.CharField(blank=True, max_length=18, null=True, verbose_name='Phone')), +                ('phone_desc', models.CharField(blank=True, max_length=300, null=True, verbose_name='Phone description')), +                ('phone2', models.CharField(blank=True, max_length=18, null=True, verbose_name='Phone description 2')), +                ('phone_desc2', models.CharField(blank=True, max_length=300, null=True, verbose_name='Phone description 2')), +                ('phone3', models.CharField(blank=True, max_length=18, null=True, verbose_name='Phone 3')), +                ('phone_desc3', models.CharField(blank=True, max_length=300, null=True, verbose_name='Phone description 3')), +                ('raw_phone', models.TextField(blank=True, null=True, verbose_name='Raw phone')), +                ('mobile_phone', models.CharField(blank=True, max_length=18, null=True, verbose_name='Mobile phone')), +                ('email', models.EmailField(blank=True, max_length=300, null=True, verbose_name='Email')), +                ('alt_address_is_prefered', models.BooleanField(default=False, verbose_name='Alternative address is prefered')), +                ('uuid', models.UUIDField(default=uuid.uuid4)), +                ('name', models.CharField(max_length=200, verbose_name='Name')), +                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), +                ('external_id', models.TextField(blank=True, null=True, verbose_name='External ID')), +                ('auto_external_id', models.BooleanField(default=False, verbose_name='External ID is set automatically')), +            ], +            options={ +                'verbose_name': 'Warehouse', +                'verbose_name_plural': 'Warehouses', +                'permissions': (('view_warehouse', 'Can view all Warehouses'), ('view_own_warehouse', 'Can view own Warehouse'), ('add_own_warehouse', 'Can add own Warehouse'), ('change_own_warehouse', 'Can change own Warehouse'), ('delete_own_warehouse', 'Can delete own Warehouse')), +            }, +            bases=(ishtar_common.models.StatisticItem, ishtar_common.models.TemplateItem, ishtar_common.models.DocumentItem, models.Model, ishtar_common.models.CachedGen, ishtar_common.models.FixAssociated, ishtar_common.models.CascasdeUpdate, ishtar_common.models.ImageContainerModel, ishtar_common.models.DashboardFormItem, ishtar_common.models.OwnPerms, ishtar_common.models.MainItem), +        ), +        migrations.CreateModel( +            name='WarehouseDivision', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('label', models.TextField(verbose_name='Label')), +                ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z', 32), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')], verbose_name='Textual ID')), +                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'verbose_name': 'Warehouse division type', +                'verbose_name_plural': 'Warehouse division types', +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.CreateModel( +            name='WarehouseDivisionLink', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('order', models.IntegerField(default=10, verbose_name='Order')), +                ('division', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_warehouse.WarehouseDivision')), +                ('warehouse', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='divisions', to='archaeological_warehouse.Warehouse')), +            ], +            options={ +                'ordering': ('warehouse', 'order'), +            }, +        ), +        migrations.CreateModel( +            name='WarehouseType', +            fields=[ +                ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), +                ('label', models.TextField(verbose_name='Label')), +                ('txt_idx', models.TextField(help_text='The slug is the standardized version of the name. It contains only lowercase letters, numbers and hyphens. Each slug must be unique.', unique=True, validators=[django.core.validators.RegexValidator(re.compile('^[-a-zA-Z0-9_]+\\Z', 32), "Enter a valid 'slug' consisting of letters, numbers, underscores or hyphens.", 'invalid')], verbose_name='Textual ID')), +                ('comment', models.TextField(blank=True, null=True, verbose_name='Comment')), +                ('available', models.BooleanField(default=True, verbose_name='Available')), +            ], +            options={ +                'verbose_name': 'Warehouse type', +                'verbose_name_plural': 'Warehouse types', +                'ordering': ('label',), +            }, +            bases=(ishtar_common.models.Cached, models.Model), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='associated_divisions', +            field=models.ManyToManyField(blank=True, through='archaeological_warehouse.WarehouseDivisionLink', to='archaeological_warehouse.WarehouseDivision', verbose_name='Divisions'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='documents', +            field=models.ManyToManyField(blank=True, related_name='warehouses', to='ishtar_common.Document', verbose_name='Documents'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='history_creator', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='history_modifier', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='imports', +            field=models.ManyToManyField(blank=True, related_name='imported_archaeological_warehouse_warehouse', to='ishtar_common.Import'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='lock_user', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='main_image', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='main_image_warehouses', to='ishtar_common.Document', verbose_name='Main image'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='organization', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='warehouses', to='ishtar_common.Organization', verbose_name='Organization'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='person_in_charge', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='warehouse_in_charge', to='ishtar_common.Person', verbose_name='Person in charge'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='precise_town', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.Town', verbose_name='Town (precise)'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='spatial_reference_system', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.SpatialReferenceSystem', verbose_name='Spatial Reference System'), +        ), +        migrations.AddField( +            model_name='warehouse', +            name='warehouse_type', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_warehouse.WarehouseType', verbose_name='Warehouse type'), +        ), +        migrations.AddField( +            model_name='containerlocalisation', +            name='division', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_warehouse.WarehouseDivisionLink', verbose_name='Division'), +        ), +        migrations.AddField( +            model_name='container', +            name='container_type', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='archaeological_warehouse.ContainerType', verbose_name='Container type'), +        ), +        migrations.AddField( +            model_name='container', +            name='documents', +            field=models.ManyToManyField(blank=True, related_name='containers', to='ishtar_common.Document', verbose_name='Documents'), +        ), +        migrations.AddField( +            model_name='container', +            name='history_creator', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Creator'), +        ), +        migrations.AddField( +            model_name='container', +            name='history_modifier', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Last editor'), +        ), +        migrations.AddField( +            model_name='container', +            name='imports', +            field=models.ManyToManyField(blank=True, related_name='imported_archaeological_warehouse_container', to='ishtar_common.Import'), +        ), +        migrations.AddField( +            model_name='container', +            name='location', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='containers', to='archaeological_warehouse.Warehouse', verbose_name='Location (warehouse)'), +        ), +        migrations.AddField( +            model_name='container', +            name='lock_user', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='+', to=settings.AUTH_USER_MODEL, verbose_name='Locked by'), +        ), +        migrations.AddField( +            model_name='container', +            name='main_image', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='main_image_containers', to='ishtar_common.Document', verbose_name='Main image'), +        ), +        migrations.AddField( +            model_name='container', +            name='responsible', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='owned_containers', to='archaeological_warehouse.Warehouse', verbose_name='Responsible warehouse'), +        ), +        migrations.AddField( +            model_name='container', +            name='spatial_reference_system', +            field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to='ishtar_common.SpatialReferenceSystem', verbose_name='Spatial Reference System'), +        ), +        migrations.AddField( +            model_name='collection', +            name='warehouse', +            field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='collections', to='archaeological_warehouse.Warehouse', verbose_name='Warehouse'), +        ), +        migrations.AlterUniqueTogether( +            name='warehousedivisionlink', +            unique_together=set([('warehouse', 'division')]), +        ), +        migrations.AddIndex( +            model_name='warehouse', +            index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_49b6ad_gin'), +        ), +        migrations.AlterUniqueTogether( +            name='containerlocalisation', +            unique_together=set([('container', 'division')]), +        ), +        migrations.AddIndex( +            model_name='container', +            index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_edae47_gin'), +        ), +        migrations.AlterUniqueTogether( +            name='container', +            unique_together=set([('index', 'responsible')]), +        ), +        migrations.AddIndex( +            model_name='collection', +            index=django.contrib.postgres.indexes.GinIndex(fields=['data'], name='archaeologi_data_4a4a83_gin'), +        ), +    ]  | 
