summary refs log tree commit diff
diff options
context:
space:
mode:
authorBrendan Abolivier <babolivier@matrix.org>2019-06-13 15:57:55 +0100
committerBrendan Abolivier <babolivier@matrix.org>2019-06-13 15:57:55 +0100
commit26a27e06b960e30e2f4f0a5054ffdacc848150c9 (patch)
treed021ba804b116896b7a045cafffe65da93685054
parentFix bogus changelog (diff)
downloadsynapse-26a27e06b960e30e2f4f0a5054ffdacc848150c9.tar.xz
Create the index in a background update
-rw-r--r--synapse/storage/profile.py15
-rw-r--r--synapse/storage/schema/delta/55/profile_replication_status_index.sql (renamed from synapse/storage/schema/delta/54/profile_replication_status_index.sql)3
2 files changed, 15 insertions, 3 deletions
diff --git a/synapse/storage/profile.py b/synapse/storage/profile.py
index 04908cbc35..919b1f1641 100644
--- a/synapse/storage/profile.py
+++ b/synapse/storage/profile.py
@@ -19,12 +19,12 @@ from twisted.internet import defer
 from synapse.api.errors import StoreError
 from synapse.storage.roommember import ProfileInfo
 
-from ._base import SQLBaseStore
+from . import background_updates
 
 BATCH_SIZE = 100
 
 
-class ProfileWorkerStore(SQLBaseStore):
+class ProfileWorkerStore(background_updates.BackgroundUpdateStore):
     @defer.inlineCallbacks
     def get_profileinfo(self, user_localpart):
         try:
@@ -166,6 +166,17 @@ class ProfileWorkerStore(SQLBaseStore):
 
 
 class ProfileStore(ProfileWorkerStore):
+    def __init__(self, db_conn, hs):
+
+        super(ProfileStore, self).__init__(db_conn, hs)
+
+        self.register_background_index_update(
+            "profile_replication_status_host_index",
+            index_name="profile_replication_status_idx",
+            table="profile_replication_status",
+            columns=["host"],
+        )
+
     def add_remote_profile_cache(self, user_id, displayname, avatar_url):
         """Ensure we are caching the remote user's profiles.
 
diff --git a/synapse/storage/schema/delta/54/profile_replication_status_index.sql b/synapse/storage/schema/delta/55/profile_replication_status_index.sql
index 7c20cb5a44..18a0f7e10c 100644
--- a/synapse/storage/schema/delta/54/profile_replication_status_index.sql
+++ b/synapse/storage/schema/delta/55/profile_replication_status_index.sql
@@ -13,4 +13,5 @@
  * limitations under the License.
  */
 
-CREATE UNIQUE INDEX profile_replication_status_idx ON profile_replication_status(host);
+INSERT INTO background_updates (update_name, progress_json) VALUES
+  ('profile_replication_status_host_index', '{}');