mirror of
https://github.com/element-hq/synapse.git
synced 2024-11-26 11:36:03 +03:00
Drop backwards-compatibility support for "outlier" (#10903)
Before Synapse 1.31 (#9411), we relied on `outlier` being stored in the `internal_metadata` column. We can now assume nobody will roll back their deployment that far and drop the legacy support.
This commit is contained in:
parent
2622b28c5c
commit
8aaa4b7b5d
3 changed files with 4 additions and 25 deletions
1
changelog.d/10903.misc
Normal file
1
changelog.d/10903.misc
Normal file
|
@ -0,0 +1 @@
|
|||
Drop old functionality which maintained database compatibility with Synapse versions before 1.31.
|
|
@ -1276,13 +1276,6 @@ class PersistEventsStore:
|
|||
logger.exception("")
|
||||
raise
|
||||
|
||||
# update the stored internal_metadata to update the "outlier" flag.
|
||||
# TODO: This is unused as of Synapse 1.31. Remove it once we are happy
|
||||
# to drop backwards-compatibility with 1.30.
|
||||
metadata_json = json_encoder.encode(event.internal_metadata.get_dict())
|
||||
sql = "UPDATE event_json SET internal_metadata = ? WHERE event_id = ?"
|
||||
txn.execute(sql, (metadata_json, event.event_id))
|
||||
|
||||
# Add an entry to the ex_outlier_stream table to replicate the
|
||||
# change in outlier status to our workers.
|
||||
stream_order = event.internal_metadata.stream_ordering
|
||||
|
@ -1327,19 +1320,6 @@ class PersistEventsStore:
|
|||
d.pop("redacted_because", None)
|
||||
return d
|
||||
|
||||
def get_internal_metadata(event):
|
||||
im = event.internal_metadata.get_dict()
|
||||
|
||||
# temporary hack for database compatibility with Synapse 1.30 and earlier:
|
||||
# store the `outlier` flag inside the internal_metadata json as well as in
|
||||
# the `events` table, so that if anyone rolls back to an older Synapse,
|
||||
# things keep working. This can be removed once we are happy to drop support
|
||||
# for that
|
||||
if event.internal_metadata.is_outlier():
|
||||
im["outlier"] = True
|
||||
|
||||
return im
|
||||
|
||||
self.db_pool.simple_insert_many_txn(
|
||||
txn,
|
||||
table="event_json",
|
||||
|
@ -1348,7 +1328,7 @@ class PersistEventsStore:
|
|||
"event_id": event.event_id,
|
||||
"room_id": event.room_id,
|
||||
"internal_metadata": json_encoder.encode(
|
||||
get_internal_metadata(event)
|
||||
event.internal_metadata.get_dict()
|
||||
),
|
||||
"json": json_encoder.encode(event_dict(event)),
|
||||
"format_version": event.format_version,
|
||||
|
|
|
@ -12,9 +12,7 @@
|
|||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
# When updating these values, please leave a short summary of the changes below.
|
||||
|
||||
SCHEMA_VERSION = 64
|
||||
SCHEMA_VERSION = 64 # remember to update the list below when updating
|
||||
"""Represents the expectations made by the codebase about the database schema
|
||||
|
||||
This should be incremented whenever the codebase changes its requirements on the
|
||||
|
@ -46,7 +44,7 @@ Changes in SCHEMA_VERSION = 64:
|
|||
"""
|
||||
|
||||
|
||||
SCHEMA_COMPAT_VERSION = 59
|
||||
SCHEMA_COMPAT_VERSION = 60 # 60: "outlier" not in internal_metadata.
|
||||
"""Limit on how far the synapse codebase can be rolled back without breaking db compat
|
||||
|
||||
This value is stored in the database, and checked on startup. If the value in the
|
||||
|
|
Loading…
Reference in a new issue