Remove old tables after schema version bump (#9055)
These tables are unused, and can be dropped now the schema version has been bumped.pull/9069/head
							parent
							
								
									63f4990298
								
							
						
					
					
						commit
						4e04435bda
					
				| 
						 | 
				
			
			@ -0,0 +1 @@
 | 
			
		|||
Drop unused database tables.
 | 
			
		||||
| 
						 | 
				
			
			@ -312,12 +312,9 @@ class AccountDataStore(AccountDataWorkerStore):
 | 
			
		|||
    def __init__(self, database: DatabasePool, db_conn, hs):
 | 
			
		||||
        self._account_data_id_gen = StreamIdGenerator(
 | 
			
		||||
            db_conn,
 | 
			
		||||
            "account_data_max_stream_id",
 | 
			
		||||
            "room_account_data",
 | 
			
		||||
            "stream_id",
 | 
			
		||||
            extra_tables=[
 | 
			
		||||
                ("room_account_data", "stream_id"),
 | 
			
		||||
                ("room_tags_revisions", "stream_id"),
 | 
			
		||||
            ],
 | 
			
		||||
            extra_tables=[("room_tags_revisions", "stream_id")],
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        super().__init__(database, db_conn, hs)
 | 
			
		||||
| 
						 | 
				
			
			@ -362,14 +359,6 @@ class AccountDataStore(AccountDataWorkerStore):
 | 
			
		|||
                lock=False,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            # it's theoretically possible for the above to succeed and the
 | 
			
		||||
            # below to fail - in which case we might reuse a stream id on
 | 
			
		||||
            # restart, and the above update might not get propagated. That
 | 
			
		||||
            # doesn't sound any worse than the whole update getting lost,
 | 
			
		||||
            # which is what would happen if we combined the two into one
 | 
			
		||||
            # transaction.
 | 
			
		||||
            await self._update_max_stream_id(next_id)
 | 
			
		||||
 | 
			
		||||
            self._account_data_stream_cache.entity_has_changed(user_id, next_id)
 | 
			
		||||
            self.get_account_data_for_user.invalidate((user_id,))
 | 
			
		||||
            self.get_account_data_for_room.invalidate((user_id, room_id))
 | 
			
		||||
| 
						 | 
				
			
			@ -402,18 +391,6 @@ class AccountDataStore(AccountDataWorkerStore):
 | 
			
		|||
                content,
 | 
			
		||||
            )
 | 
			
		||||
 | 
			
		||||
            # it's theoretically possible for the above to succeed and the
 | 
			
		||||
            # below to fail - in which case we might reuse a stream id on
 | 
			
		||||
            # restart, and the above update might not get propagated. That
 | 
			
		||||
            # doesn't sound any worse than the whole update getting lost,
 | 
			
		||||
            # which is what would happen if we combined the two into one
 | 
			
		||||
            # transaction.
 | 
			
		||||
            #
 | 
			
		||||
            # Note: This is only here for backwards compat to allow admins to
 | 
			
		||||
            # roll back to a previous Synapse version. Next time we update the
 | 
			
		||||
            # database version we can remove this table.
 | 
			
		||||
            await self._update_max_stream_id(next_id)
 | 
			
		||||
 | 
			
		||||
            self._account_data_stream_cache.entity_has_changed(user_id, next_id)
 | 
			
		||||
            self.get_account_data_for_user.invalidate((user_id,))
 | 
			
		||||
            self.get_global_account_data_by_type_for_user.invalidate(
 | 
			
		||||
| 
						 | 
				
			
			@ -486,24 +463,3 @@ class AccountDataStore(AccountDataWorkerStore):
 | 
			
		|||
        # Invalidate the cache for any ignored users which were added or removed.
 | 
			
		||||
        for ignored_user_id in previously_ignored_users ^ currently_ignored_users:
 | 
			
		||||
            self._invalidate_cache_and_stream(txn, self.ignored_by, (ignored_user_id,))
 | 
			
		||||
 | 
			
		||||
    async def _update_max_stream_id(self, next_id: int) -> None:
 | 
			
		||||
        """Update the max stream_id
 | 
			
		||||
 | 
			
		||||
        Args:
 | 
			
		||||
            next_id: The the revision to advance to.
 | 
			
		||||
        """
 | 
			
		||||
 | 
			
		||||
        # Note: This is only here for backwards compat to allow admins to
 | 
			
		||||
        # roll back to a previous Synapse version. Next time we update the
 | 
			
		||||
        # database version we can remove this table.
 | 
			
		||||
 | 
			
		||||
        def _update(txn):
 | 
			
		||||
            update_max_id_sql = (
 | 
			
		||||
                "UPDATE account_data_max_stream_id"
 | 
			
		||||
                " SET stream_id = ?"
 | 
			
		||||
                " WHERE stream_id < ?"
 | 
			
		||||
            )
 | 
			
		||||
            txn.execute(update_max_id_sql, (next_id, next_id))
 | 
			
		||||
 | 
			
		||||
        await self.db_pool.runInteraction("update_account_data_max_stream_id", _update)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
/* Copyright 2021 The Matrix.org Foundation C.I.C
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
-- This is no longer used and was only kept until we bumped the schema version.
 | 
			
		||||
DROP TABLE IF EXISTS account_data_max_stream_id;
 | 
			
		||||
| 
						 | 
				
			
			@ -0,0 +1,17 @@
 | 
			
		|||
/* Copyright 2021 The Matrix.org Foundation C.I.C
 | 
			
		||||
 *
 | 
			
		||||
 * Licensed under the Apache License, Version 2.0 (the "License");
 | 
			
		||||
 * you may not use this file except in compliance with the License.
 | 
			
		||||
 * You may obtain a copy of the License at
 | 
			
		||||
 *
 | 
			
		||||
 *    http://www.apache.org/licenses/LICENSE-2.0
 | 
			
		||||
 *
 | 
			
		||||
 * Unless required by applicable law or agreed to in writing, software
 | 
			
		||||
 * distributed under the License is distributed on an "AS IS" BASIS,
 | 
			
		||||
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 | 
			
		||||
 * See the License for the specific language governing permissions and
 | 
			
		||||
 * limitations under the License.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
-- This is no longer used and was only kept until we bumped the schema version.
 | 
			
		||||
DROP TABLE IF EXISTS cache_invalidation_stream;
 | 
			
		||||
| 
						 | 
				
			
			@ -255,16 +255,6 @@ class TagsStore(TagsWorkerStore):
 | 
			
		|||
            self._account_data_stream_cache.entity_has_changed, user_id, next_id
 | 
			
		||||
        )
 | 
			
		||||
 | 
			
		||||
        # Note: This is only here for backwards compat to allow admins to
 | 
			
		||||
        # roll back to a previous Synapse version. Next time we update the
 | 
			
		||||
        # database version we can remove this table.
 | 
			
		||||
        update_max_id_sql = (
 | 
			
		||||
            "UPDATE account_data_max_stream_id"
 | 
			
		||||
            " SET stream_id = ?"
 | 
			
		||||
            " WHERE stream_id < ?"
 | 
			
		||||
        )
 | 
			
		||||
        txn.execute(update_max_id_sql, (next_id, next_id))
 | 
			
		||||
 | 
			
		||||
        update_sql = (
 | 
			
		||||
            "UPDATE room_tags_revisions"
 | 
			
		||||
            " SET stream_id = ?"
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -35,9 +35,6 @@ logger = logging.getLogger(__name__)
 | 
			
		|||
 | 
			
		||||
# Remember to update this number every time a change is made to database
 | 
			
		||||
# schema files, so the users will be informed on server restarts.
 | 
			
		||||
# XXX: If you're about to bump this to 59 (or higher) please create an update
 | 
			
		||||
# that drops the unused `cache_invalidation_stream` table, as per #7436!
 | 
			
		||||
# XXX: Also add an update to drop `account_data_max_stream_id` as per #7656!
 | 
			
		||||
SCHEMA_VERSION = 59
 | 
			
		||||
 | 
			
		||||
dir_path = os.path.abspath(os.path.dirname(__file__))
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue