diff --git a/arkindex/documents/migrations/0003_cache.py b/arkindex/documents/migrations/0003_cache.py new file mode 100644 index 0000000000000000000000000000000000000000..3a122d800089b490e15d025ce12192ae13ae1de5 --- /dev/null +++ b/arkindex/documents/migrations/0003_cache.py @@ -0,0 +1,63 @@ +# Generated by Django 2.0 on 2018-05-18 08:09 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('documents', '0002_element_zone'), + ] + + operations = [ + migrations.RunSQL( + """ + create materialized view elements_parents_cache as + ( + select * from elements_parents + ); + """, + reverse_sql="drop materialized view if exists elements_parents_cache;" + ), + migrations.RunSQL( + """ + create materialized view elements_children_cache as + ( + select * from elements_children + ); + """, + reverse_sql="drop materialized view if exists elements_children_cache;" + ), + migrations.RunSQL( + """ + create index idx_elements_parents_cache_id on elements_parents_cache (id); + """, + reverse_sql="drop index if exists idx_elements_parents_cache_id;" + ), + migrations.RunSQL( + """ + create index idx_elements_parents_cache_parent on elements_parents_cache (parent_id); + """, + reverse_sql="drop index if exists idx_elements_parents_cache_parent;" + ), + migrations.RunSQL( + """ + create index idx_elements_children_cache_id on elements_children_cache (id); + """, + reverse_sql="drop index if exists idx_elements_children_cache_id;" + ), + migrations.RunSQL( + """ + create index idx_elements_children_cache_child on elements_children_cache (child_id); + """, + reverse_sql="drop index if exists idx_elements_children_cache_child;" + ), + migrations.AlterModelTable( + name='elementchildren', + table='elements_children_cache', + ), + migrations.AlterModelTable( + name='elementparents', + table='elements_parents_cache', + ), + ] diff --git a/arkindex/documents/models.py b/arkindex/documents/models.py index 2834783b1a32d8a8cb7616427799451f7dd9f42d..fb0df1486f7816b39f6aa67f68c9229f335e7908 100644 --- a/arkindex/documents/models.py +++ b/arkindex/documents/models.py @@ -40,7 +40,7 @@ class ElementParents(models.Model): class Meta: managed = False - db_table = 'elements_parents' + db_table = 'elements_parents_cache' class ElementChildren(models.Model): @@ -51,7 +51,7 @@ class ElementChildren(models.Model): class Meta: managed = False - db_table = 'elements_children' + db_table = 'elements_children_cache' class Element(IndexableModel):