diff --git a/synapse/_scripts/synapse_port_db.py b/synapse/_scripts/synapse_port_db.py
index 7c4aa0afa2..22c84fbd5b 100755
--- a/synapse/_scripts/synapse_port_db.py
+++ b/synapse/_scripts/synapse_port_db.py
@@ -761,7 +761,7 @@ class Porter:
# Step 2. Set up sequences
#
- # We do this before porting the tables so that event if we fail half
+ # We do this before porting the tables so that even if we fail half
# way through the postgres DB always have sequences that are greater
# than their respective tables. If we don't then creating the
# `DataStore` object will fail due to the inconsistency.
@@ -770,6 +770,10 @@ class Porter:
await self._setup_user_id_seq()
await self._setup_events_stream_seqs()
await self._setup_sequence(
+ "un_partial_stated_event_stream_sequence",
+ ("un_partial_stated_event_stream",),
+ )
+ await self._setup_sequence(
"device_inbox_sequence", ("device_inbox", "device_federation_outbox")
)
await self._setup_sequence(
@@ -779,6 +783,11 @@ class Porter:
await self._setup_sequence("receipts_sequence", ("receipts_linearized",))
await self._setup_sequence("presence_stream_sequence", ("presence_stream",))
await self._setup_auth_chain_sequence()
+ await self._setup_sequence(
+ "application_services_txn_id_seq",
+ ("application_services_txns",),
+ "txn_id",
+ )
# Step 3. Get tables.
self.progress.set_state("Fetching tables")
@@ -1083,7 +1092,10 @@ class Porter:
)
async def _setup_sequence(
- self, sequence_name: str, stream_id_tables: Iterable[str]
+ self,
+ sequence_name: str,
+ stream_id_tables: Iterable[str],
+ column_name: str = "stream_id",
) -> None:
"""Set a sequence to the correct value."""
current_stream_ids = []
@@ -1093,7 +1105,7 @@ class Porter:
await self.sqlite_store.db_pool.simple_select_one_onecol(
table=stream_id_table,
keyvalues={},
- retcol="COALESCE(MAX(stream_id), 1)",
+ retcol=f"COALESCE(MAX({column_name}), 1)",
allow_none=True,
),
)
|