lookup name and column in indexdef, fixes ./manage.py sqlfindindex

This commit is contained in:
j 2016-12-31 23:31:17 +01:00
parent 6ad112a3b8
commit ce2768e45f

View file

@ -36,18 +36,18 @@ class Command(BaseCommand):
import entity.models
import document.models
for table, column in (
(models.ItemFind._meta.db_table, 'value'), # Item Find
(models.Clip._meta.db_table, 'findvalue'), # Clip Find
(models.Annotation._meta.db_table, 'findvalue'), # Annotation Find
(entity.models.Find._meta.db_table, 'value'), # Entity Find
(document.models.Find._meta.db_table, 'value'), # Document Find
(models.ItemFind._meta.db_table, 'value'), # Item Find
(models.Clip._meta.db_table, 'findvalue'), # Clip Find
(models.Annotation._meta.db_table, 'findvalue'), # Annotation Find
(entity.models.Find._meta.db_table, 'value'), # Entity Find
(document.models.Find._meta.db_table, 'value'), # Document Find
):
cursor = connection.cursor()
indexes = connection.introspection.get_indexes(cursor, table)
drop = []
if column in indexes:
sql = "SELECT indexname, indexdef FROM pg_catalog.pg_indexes " + \
"WHERE indexname LIKE '%{table}%' AND indexname LIKE '%{column}%'".format(table=table, column=column)
"WHERE indexdef LIKE '%ON {table}%' AND indexdef LIKE '%{column}%'".format(table=table, column=column)
cursor.execute(sql)
for r in cursor:
if 'USING gin' not in r[1]: