Compare commits

..

1 Commits

Author SHA1 Message Date
Benjamin Dauvergne af39728e27 base_adresse: add indexes on on geographic models names (#66694)
gitea/passerelle/pipeline/head This commit looks good Details
2023-11-29 19:10:55 +01:00
2 changed files with 27 additions and 27 deletions

View File

@ -1,4 +1,4 @@
# Generated by Django 3.2.18 on 2023-03-17 11:04
# Generated by Django 3.2.18 on 2023-11-29 18:06
import django.contrib.postgres.indexes
import django.db.models.functions.text
@ -13,30 +13,13 @@ class Migration(migrations.Migration):
operations = [
postgresql_operations.TrigramExtension(),
migrations.AlterField(
migrations.AddIndex(
model_name='citymodel',
name='code',
field=models.CharField(db_index=True, max_length=5, verbose_name='INSEE code'),
index=models.Index(fields=['code'], name='base_adress_code_e169d0_idx'),
),
migrations.AlterField(
migrations.AddIndex(
model_name='citymodel',
name='zipcode',
field=models.CharField(db_index=True, max_length=5, verbose_name='Postal code'),
),
migrations.AlterField(
model_name='streetmodel',
name='ban_id',
field=models.CharField(db_index=True, max_length=32, null=True, verbose_name='BAN Identifier'),
),
migrations.AlterField(
model_name='streetmodel',
name='citycode',
field=models.CharField(db_index=True, max_length=5, verbose_name='City Code'),
),
migrations.AlterField(
model_name='streetmodel',
name='zipcode',
field=models.CharField(db_index=True, max_length=5, verbose_name='Postal code'),
index=models.Index(fields=['zipcode'], name='base_adress_zipcode_79aa6f_idx'),
),
migrations.AddIndex(
model_name='citymodel',
@ -56,6 +39,18 @@ class Migration(migrations.Migration):
django.db.models.functions.text.Upper('unaccent_name'), name='base_adresse_region_name_idx'
),
),
migrations.AddIndex(
model_name='streetmodel',
index=models.Index(fields=['ban_id'], name='base_adress_ban_id_2c35ab_idx'),
),
migrations.AddIndex(
model_name='streetmodel',
index=models.Index(fields=['zipcode'], name='base_adress_zipcode_bf7091_idx'),
),
migrations.AddIndex(
model_name='streetmodel',
index=models.Index(fields=['citycode'], name='base_adress_citycod_428b79_idx'),
),
migrations.AddIndex(
model_name='streetmodel',
index=django.contrib.postgres.indexes.GinIndex(

View File

@ -724,13 +724,13 @@ class UnaccentNameMixin:
class StreetModel(UnaccentNameMixin, models.Model):
ban_id = models.CharField(_('BAN Identifier'), max_length=32, null=True, db_index=True)
ban_id = models.CharField(_('BAN Identifier'), max_length=32, null=True)
city = models.CharField(_('City'), max_length=150)
name = models.CharField(_('Street name'), max_length=150)
unaccent_name = models.CharField(_('Street name ascii char'), max_length=150, null=True)
zipcode = models.CharField(_('Postal code'), max_length=5, db_index=True)
zipcode = models.CharField(_('Postal code'), max_length=5)
type = models.CharField(_('Street type'), max_length=30)
citycode = models.CharField(_('City Code'), max_length=5, db_index=True)
citycode = models.CharField(_('City Code'), max_length=5)
last_update = models.DateTimeField(_('Last update'), null=True, auto_now=True)
resource = models.ForeignKey(BaseAdresse, on_delete=models.CASCADE, verbose_name=_('BAN Connector'))
@ -738,6 +738,9 @@ class StreetModel(UnaccentNameMixin, models.Model):
class Meta:
ordering = ['unaccent_name', 'name']
indexes = [
models.Index(fields=['ban_id']),
models.Index(fields=['zipcode']),
models.Index(fields=['citycode']),
postgresql_indexes.GinIndex(
postgresql_indexes.OpClass(Upper('unaccent_name'), 'gin_trgm_ops'),
name='%(app_label)s_street_name_idx',
@ -808,8 +811,8 @@ class DepartmentModel(UnaccentNameMixin, models.Model):
class CityModel(UnaccentNameMixin, models.Model):
name = models.CharField(_('City name'), max_length=150)
unaccent_name = models.CharField(_('City name ascii char'), max_length=150, null=True)
code = models.CharField(_('INSEE code'), max_length=5, db_index=True)
zipcode = models.CharField(_('Postal code'), max_length=5, db_index=True)
code = models.CharField(_('INSEE code'), max_length=5)
zipcode = models.CharField(_('Postal code'), max_length=5)
population = models.PositiveIntegerField(_('Population'))
department = models.ForeignKey(DepartmentModel, on_delete=models.CASCADE, blank=True, null=True)
region = models.ForeignKey(RegionModel, on_delete=models.CASCADE, blank=True, null=True)
@ -836,6 +839,8 @@ class CityModel(UnaccentNameMixin, models.Model):
ordering = ['-population', 'zipcode', 'unaccent_name', 'name']
unique_together = ('resource', 'code', 'zipcode')
indexes = [
models.Index(fields=['code']),
models.Index(fields=['zipcode']),
models.Index(Upper('unaccent_name'), name='%(app_label)s_city_name_idx'),
]