diff options
author | Olivier Wilkinson (reivilibre) <oliverw@matrix.org> | 2023-02-17 17:56:37 +0000 |
---|---|---|
committer | Olivier Wilkinson (reivilibre) <oliverw@matrix.org> | 2023-03-16 11:45:51 +0000 |
commit | 48a637a6ff2602b0c340a0203e40ab85bc569a0f (patch) | |
tree | 23d269bef4965a12cbc81443bc14a0fb6a9dde75 | |
parent | (ugly?) Kick off the fetching of remote profiles once ready (diff) | |
download | synapse-48a637a6ff2602b0c340a0203e40ab85bc569a0f.tar.xz |
When we start populating the user directory, clear out the old tables first if they're there
-rw-r--r-- | synapse/storage/databases/main/user_directory.py | 24 |
1 files changed, 14 insertions, 10 deletions
diff --git a/synapse/storage/databases/main/user_directory.py b/synapse/storage/databases/main/user_directory.py index b94b45a5b0..276d4fcec9 100644 --- a/synapse/storage/databases/main/user_directory.py +++ b/synapse/storage/databases/main/user_directory.py @@ -105,11 +105,22 @@ class UserDirectoryBackgroundUpdateStore(StateDeltasStore): "populate_user_directory_cleanup", self._populate_user_directory_cleanup ) + @staticmethod + def _delete_staging_area(txn: LoggingTransaction) -> None: + txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_rooms") + txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_users") + txn.execute( + "DROP TABLE IF EXISTS " + TEMP_TABLE + "_remote_users_needing_lookup" + ) + txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_position") + async def _populate_user_directory_createtables( self, progress: JsonDict, batch_size: int ) -> int: - # Get all the rooms that we want to process. def _make_staging_area(txn: LoggingTransaction) -> None: + # Clear out any tables if they already exist beforehand. + UserDirectoryBackgroundUpdateStore._delete_staging_area(txn) + sql = ( "CREATE TABLE IF NOT EXISTS " + TEMP_TABLE @@ -188,16 +199,9 @@ class UserDirectoryBackgroundUpdateStore(StateDeltasStore): ) await self.update_user_directory_stream_pos(position) - def _delete_staging_area(txn: LoggingTransaction) -> None: - txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_rooms") - txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_users") - txn.execute( - "DROP TABLE IF EXISTS " + TEMP_TABLE + "_remote_users_needing_lookup" - ) - txn.execute("DROP TABLE IF EXISTS " + TEMP_TABLE + "_position") - await self.db_pool.runInteraction( - "populate_user_directory_cleanup", _delete_staging_area + "populate_user_directory_cleanup", + UserDirectoryBackgroundUpdateStore._delete_staging_area, ) await self.db_pool.updates._end_background_update( |