Explorar el Código

Compute name of unique indices

jherve hace 1 año
padre
commit
7c555c7395
Se han modificado 2 ficheros con 11 adiciones y 34 borrados
  1. 7 33
      src/media_observer/storage.py
  2. 4 1
      src/media_observer/storage_abstraction.py

+ 7 - 33
src/media_observer/storage.py

@@ -214,41 +214,15 @@ class Storage(StorageAbc):
     ]
 
     indexes = [
+        UniqueIndex(table="sites", columns=["name"]),
+        UniqueIndex(table="snapshots", columns=["timestamp_virtual", "site_id"]),
+        UniqueIndex(table="articles", columns=["url"]),
+        UniqueIndex(table="titles", columns=["text"]),
+        UniqueIndex(table="main_articles", columns=["snapshot_id", "article_id"]),
         UniqueIndex(
-            name="sites_unique_name",
-            table="sites",
-            columns=["name"],
-        ),
-        UniqueIndex(
-            name="snapshots_unique_timestamp_virtual_site_id",
-            table="snapshots",
-            columns=["timestamp_virtual", "site_id"],
-        ),
-        UniqueIndex(
-            name="articles_unique_url",
-            table="articles",
-            columns=["url"],
-        ),
-        UniqueIndex(
-            name="titles_unique_text",
-            table="titles",
-            columns=["text"],
-        ),
-        UniqueIndex(
-            name="main_articles_unique_idx_snapshot_id_article_id",
-            table="main_articles",
-            columns=["snapshot_id", "article_id"],
-        ),
-        UniqueIndex(
-            name="top_articles_unique_idx_snapshot_id_article_id_rank",
-            table="top_articles",
-            columns=["snapshot_id", "article_id", "rank"],
-        ),
-        UniqueIndex(
-            name="embeddings_unique_title_id",
-            table="embeddings",
-            columns=["title_id"],
+            table="top_articles", columns=["snapshot_id", "article_id", "rank"]
         ),
+        UniqueIndex(table="embeddings", columns=["title_id"]),
     ]
 
     def __init__(self, backend):

+ 4 - 1
src/media_observer/storage_abstraction.py

@@ -5,10 +5,13 @@ from attrs import frozen
 
 @frozen
 class UniqueIndex:
-    name: str
     table: str
     columns: list[str]
 
+    @property
+    def name(self):
+        return f"{self.table}_unique_idx_{'_'.join(self.columns)}"
+
     async def create_if_not_exists(self, conn):
         cols = ",".join(self.columns)
         stmt = f"""