summary refs log tree commit diff
path: root/synapse/storage/schema/__init__.py
diff options
context:
space:
mode:
authorPatrick Cloke <clokep@users.noreply.github.com>2023-05-26 13:16:08 -0400
committerGitHub <noreply@github.com>2023-05-26 13:16:08 -0400
commit2ad91ec628126753590c1a90c432270d6c8fa8fd (patch)
treed437ff10f3a4c604719146cb4b1e201dec0095d1 /synapse/storage/schema/__init__.py
parentMerge branch 'master' into develop (diff)
downloadsynapse-2ad91ec628126753590c1a90c432270d6c8fa8fd.tar.xz
Set thread_id column to non-null for event_push_{actions,actions_staging,summary} (#15597)
Updates the database schema to require a thread_id (by adding a
constraint that the column is non-null) for event_push_actions,
event_push_actions_staging, and event_push_actions_summary.

For PostgreSQL we add the constraint as NOT VALID, then
VALIDATE the constraint a background job to avoid locking
the table during an upgrade.

Each table is updated as a separate schema delta to avoid
deadlocks between them.

For SQLite we simply rebuild the table & copy the data.
Diffstat (limited to 'synapse/storage/schema/__init__.py')
-rw-r--r--synapse/storage/schema/__init__.py3
1 files changed, 3 insertions, 0 deletions
diff --git a/synapse/storage/schema/__init__.py b/synapse/storage/schema/__init__.py
index df2cc31ca6..5cc786f030 100644
--- a/synapse/storage/schema/__init__.py
+++ b/synapse/storage/schema/__init__.py
@@ -110,6 +110,9 @@ SCHEMA_COMPAT_VERSION = (
     # Queries against `event_stream_ordering` columns in membership tables must
     # be disambiguated.
     #
+    # The threads_id column must written to with non-null values for the
+    # event_push_actions, event_push_actions_staging, and event_push_summary tables.
+    #
     # insertions to the column `full_user_id` of tables profiles and user_filters can no
     # longer be null
     76