diff --git a/synapse/storage/databases/main/schema/delta/12/v12.sql b/synapse/storage/databases/main/schema/delta/12/v12.sql
deleted file mode 100644
index 5964c5aaac..0000000000
--- a/synapse/storage/databases/main/schema/delta/12/v12.sql
+++ /dev/null
@@ -1,63 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS rejections(
- event_id TEXT NOT NULL,
- reason TEXT NOT NULL,
- last_check TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
--- Push notification endpoints that users have configured
-CREATE TABLE IF NOT EXISTS pushers (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- user_name TEXT NOT NULL,
- profile_tag VARCHAR(32) NOT NULL,
- kind VARCHAR(8) NOT NULL,
- app_id VARCHAR(64) NOT NULL,
- app_display_name VARCHAR(64) NOT NULL,
- device_display_name VARCHAR(128) NOT NULL,
- pushkey VARBINARY(512) NOT NULL,
- ts BIGINT UNSIGNED NOT NULL,
- lang VARCHAR(8),
- data LONGBLOB,
- last_token TEXT,
- last_success BIGINT UNSIGNED,
- failing_since BIGINT UNSIGNED,
- UNIQUE (app_id, pushkey)
-);
-
-CREATE TABLE IF NOT EXISTS push_rules (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- user_name TEXT NOT NULL,
- rule_id TEXT NOT NULL,
- priority_class TINYINT NOT NULL,
- priority INTEGER NOT NULL DEFAULT 0,
- conditions TEXT NOT NULL,
- actions TEXT NOT NULL,
- UNIQUE(user_name, rule_id)
-);
-
-CREATE INDEX IF NOT EXISTS push_rules_user_name on push_rules (user_name);
-
-CREATE TABLE IF NOT EXISTS user_filters(
- user_id TEXT,
- filter_id BIGINT UNSIGNED,
- filter_json LONGBLOB
-);
-
-CREATE INDEX IF NOT EXISTS user_filters_by_user_id_filter_id ON user_filters(
- user_id, filter_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/13/v13.sql b/synapse/storage/databases/main/schema/delta/13/v13.sql
deleted file mode 100644
index f8649e5d99..0000000000
--- a/synapse/storage/databases/main/schema/delta/13/v13.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/* We used to create a tables called application_services and
- * application_services_regex, but these are no longer used and are removed in
- * delta 54.
- */
diff --git a/synapse/storage/databases/main/schema/delta/14/v14.sql b/synapse/storage/databases/main/schema/delta/14/v14.sql
deleted file mode 100644
index a831920da6..0000000000
--- a/synapse/storage/databases/main/schema/delta/14/v14.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-CREATE TABLE IF NOT EXISTS push_rules_enable (
- id INTEGER PRIMARY KEY AUTOINCREMENT,
- user_name TEXT NOT NULL,
- rule_id TEXT NOT NULL,
- enabled TINYINT,
- UNIQUE(user_name, rule_id)
-);
-
-CREATE INDEX IF NOT EXISTS push_rules_enable_user_name on push_rules_enable (user_name);
diff --git a/synapse/storage/databases/main/schema/delta/15/appservice_txns.sql b/synapse/storage/databases/main/schema/delta/15/appservice_txns.sql
deleted file mode 100644
index e4f5e76aec..0000000000
--- a/synapse/storage/databases/main/schema/delta/15/appservice_txns.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS application_services_state(
- as_id TEXT PRIMARY KEY,
- state VARCHAR(5),
- last_txn INTEGER
-);
-
-CREATE TABLE IF NOT EXISTS application_services_txns(
- as_id TEXT NOT NULL,
- txn_id INTEGER NOT NULL,
- event_ids TEXT NOT NULL,
- UNIQUE(as_id, txn_id)
-);
-
-CREATE INDEX IF NOT EXISTS application_services_txns_id ON application_services_txns (
- as_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/15/presence_indices.sql b/synapse/storage/databases/main/schema/delta/15/presence_indices.sql
deleted file mode 100644
index 6b8d0f1ca7..0000000000
--- a/synapse/storage/databases/main/schema/delta/15/presence_indices.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-
-CREATE INDEX IF NOT EXISTS presence_list_user_id ON presence_list (user_id);
diff --git a/synapse/storage/databases/main/schema/delta/15/v15.sql b/synapse/storage/databases/main/schema/delta/15/v15.sql
deleted file mode 100644
index 9523d2bcc3..0000000000
--- a/synapse/storage/databases/main/schema/delta/15/v15.sql
+++ /dev/null
@@ -1,24 +0,0 @@
--- Drop, copy & recreate pushers table to change unique key
--- Also add access_token column at the same time
-CREATE TABLE IF NOT EXISTS pushers2 (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- access_token BIGINT DEFAULT NULL,
- profile_tag VARCHAR(32) NOT NULL,
- kind VARCHAR(8) NOT NULL,
- app_id VARCHAR(64) NOT NULL,
- app_display_name VARCHAR(64) NOT NULL,
- device_display_name VARCHAR(128) NOT NULL,
- pushkey bytea NOT NULL,
- ts BIGINT NOT NULL,
- lang VARCHAR(8),
- data bytea,
- last_token TEXT,
- last_success BIGINT,
- failing_since BIGINT,
- UNIQUE (app_id, pushkey)
-);
-INSERT INTO pushers2 (id, user_name, profile_tag, kind, app_id, app_display_name, device_display_name, pushkey, ts, lang, data, last_token, last_success, failing_since)
- SELECT id, user_name, profile_tag, kind, app_id, app_display_name, device_display_name, pushkey, ts, lang, data, last_token, last_success, failing_since FROM pushers;
-DROP TABLE pushers;
-ALTER TABLE pushers2 RENAME TO pushers;
diff --git a/synapse/storage/databases/main/schema/delta/16/events_order_index.sql b/synapse/storage/databases/main/schema/delta/16/events_order_index.sql
deleted file mode 100644
index a48f215170..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/events_order_index.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-CREATE INDEX events_order ON events (topological_ordering, stream_ordering);
-CREATE INDEX events_order_room ON events (
- room_id, topological_ordering, stream_ordering
-);
diff --git a/synapse/storage/databases/main/schema/delta/16/remote_media_cache_index.sql b/synapse/storage/databases/main/schema/delta/16/remote_media_cache_index.sql
deleted file mode 100644
index 7a15265cb1..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/remote_media_cache_index.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-CREATE INDEX IF NOT EXISTS remote_media_cache_thumbnails_media_id
- ON remote_media_cache_thumbnails (media_id);
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/16/remove_duplicates.sql b/synapse/storage/databases/main/schema/delta/16/remove_duplicates.sql
deleted file mode 100644
index 65c97b5e2f..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/remove_duplicates.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-DELETE FROM event_to_state_groups WHERE state_group not in (
- SELECT MAX(state_group) FROM event_to_state_groups GROUP BY event_id
-);
-
-DELETE FROM event_to_state_groups WHERE rowid not in (
- SELECT MIN(rowid) FROM event_to_state_groups GROUP BY event_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/16/room_alias_index.sql b/synapse/storage/databases/main/schema/delta/16/room_alias_index.sql
deleted file mode 100644
index f82486132b..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/room_alias_index.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-
-CREATE INDEX IF NOT EXISTS room_aliases_id ON room_aliases(room_id);
-CREATE INDEX IF NOT EXISTS room_alias_servers_alias ON room_alias_servers(room_alias);
diff --git a/synapse/storage/databases/main/schema/delta/16/unique_constraints.sql b/synapse/storage/databases/main/schema/delta/16/unique_constraints.sql
deleted file mode 100644
index 5b8de52c33..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/unique_constraints.sql
+++ /dev/null
@@ -1,72 +0,0 @@
-
--- We can use SQLite features here, since other db support was only added in v16
-
---
-DELETE FROM current_state_events WHERE rowid not in (
- SELECT MIN(rowid) FROM current_state_events GROUP BY event_id
-);
-
-DROP INDEX IF EXISTS current_state_events_event_id;
-CREATE UNIQUE INDEX current_state_events_event_id ON current_state_events(event_id);
-
---
-DELETE FROM room_memberships WHERE rowid not in (
- SELECT MIN(rowid) FROM room_memberships GROUP BY event_id
-);
-
-DROP INDEX IF EXISTS room_memberships_event_id;
-CREATE UNIQUE INDEX room_memberships_event_id ON room_memberships(event_id);
-
---
-DELETE FROM topics WHERE rowid not in (
- SELECT MIN(rowid) FROM topics GROUP BY event_id
-);
-
-DROP INDEX IF EXISTS topics_event_id;
-CREATE UNIQUE INDEX topics_event_id ON topics(event_id);
-
---
-DELETE FROM room_names WHERE rowid not in (
- SELECT MIN(rowid) FROM room_names GROUP BY event_id
-);
-
-DROP INDEX IF EXISTS room_names_id;
-CREATE UNIQUE INDEX room_names_id ON room_names(event_id);
-
---
-DELETE FROM presence WHERE rowid not in (
- SELECT MIN(rowid) FROM presence GROUP BY user_id
-);
-
-DROP INDEX IF EXISTS presence_id;
-CREATE UNIQUE INDEX presence_id ON presence(user_id);
-
---
-DELETE FROM presence_allow_inbound WHERE rowid not in (
- SELECT MIN(rowid) FROM presence_allow_inbound
- GROUP BY observed_user_id, observer_user_id
-);
-
-DROP INDEX IF EXISTS presence_allow_inbound_observers;
-CREATE UNIQUE INDEX presence_allow_inbound_observers ON presence_allow_inbound(
- observed_user_id, observer_user_id
-);
-
---
-DELETE FROM presence_list WHERE rowid not in (
- SELECT MIN(rowid) FROM presence_list
- GROUP BY user_id, observed_user_id
-);
-
-DROP INDEX IF EXISTS presence_list_observers;
-CREATE UNIQUE INDEX presence_list_observers ON presence_list(
- user_id, observed_user_id
-);
-
---
-DELETE FROM room_aliases WHERE rowid not in (
- SELECT MIN(rowid) FROM room_aliases GROUP BY room_alias
-);
-
-DROP INDEX IF EXISTS room_aliases_id;
-CREATE INDEX room_aliases_id ON room_aliases(room_id);
diff --git a/synapse/storage/databases/main/schema/delta/16/users.sql b/synapse/storage/databases/main/schema/delta/16/users.sql
deleted file mode 100644
index cd0709250d..0000000000
--- a/synapse/storage/databases/main/schema/delta/16/users.sql
+++ /dev/null
@@ -1,56 +0,0 @@
--- Convert `access_tokens`.user from rowids to user strings.
--- MUST BE DONE BEFORE REMOVING ID COLUMN FROM USERS TABLE BELOW
-CREATE TABLE IF NOT EXISTS new_access_tokens(
- id BIGINT UNSIGNED PRIMARY KEY,
- user_id TEXT NOT NULL,
- device_id TEXT,
- token TEXT NOT NULL,
- last_used BIGINT UNSIGNED,
- UNIQUE(token)
-);
-
-INSERT INTO new_access_tokens
- SELECT a.id, u.name, a.device_id, a.token, a.last_used
- FROM access_tokens as a
- INNER JOIN users as u ON u.id = a.user_id;
-
-DROP TABLE access_tokens;
-
-ALTER TABLE new_access_tokens RENAME TO access_tokens;
-
--- Remove ID column from `users` table
-CREATE TABLE IF NOT EXISTS new_users(
- name TEXT,
- password_hash TEXT,
- creation_ts BIGINT UNSIGNED,
- admin BOOL DEFAULT 0 NOT NULL,
- UNIQUE(name)
-);
-
-INSERT INTO new_users SELECT name, password_hash, creation_ts, admin FROM users;
-
-DROP TABLE users;
-
-ALTER TABLE new_users RENAME TO users;
-
-
--- Remove UNIQUE constraint from `user_ips` table
-CREATE TABLE IF NOT EXISTS new_user_ips (
- user_id TEXT NOT NULL,
- access_token TEXT NOT NULL,
- device_id TEXT,
- ip TEXT NOT NULL,
- user_agent TEXT NOT NULL,
- last_seen BIGINT UNSIGNED NOT NULL
-);
-
-INSERT INTO new_user_ips
- SELECT user, access_token, device_id, ip, user_agent, last_seen FROM user_ips;
-
-DROP TABLE user_ips;
-
-ALTER TABLE new_user_ips RENAME TO user_ips;
-
-CREATE INDEX IF NOT EXISTS user_ips_user ON user_ips(user_id);
-CREATE INDEX IF NOT EXISTS user_ips_user_ip ON user_ips(user_id, access_token, ip);
-
diff --git a/synapse/storage/databases/main/schema/delta/17/drop_indexes.sql b/synapse/storage/databases/main/schema/delta/17/drop_indexes.sql
deleted file mode 100644
index 7c9a90e27f..0000000000
--- a/synapse/storage/databases/main/schema/delta/17/drop_indexes.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-DROP INDEX IF EXISTS sent_transaction_dest;
-DROP INDEX IF EXISTS sent_transaction_sent;
-DROP INDEX IF EXISTS user_ips_user;
diff --git a/synapse/storage/databases/main/schema/delta/17/server_keys.sql b/synapse/storage/databases/main/schema/delta/17/server_keys.sql
deleted file mode 100644
index 70b247a06b..0000000000
--- a/synapse/storage/databases/main/schema/delta/17/server_keys.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS server_keys_json (
- server_name TEXT, -- Server name.
- key_id TEXT, -- Requested key id.
- from_server TEXT, -- Which server the keys were fetched from.
- ts_added_ms INTEGER, -- When the keys were fetched
- ts_valid_until_ms INTEGER, -- When this version of the keys exipires.
- key_json bytea, -- JSON certificate for the remote server.
- CONSTRAINT uniqueness UNIQUE (server_name, key_id, from_server)
-);
diff --git a/synapse/storage/databases/main/schema/delta/17/user_threepids.sql b/synapse/storage/databases/main/schema/delta/17/user_threepids.sql
deleted file mode 100644
index c17715ac80..0000000000
--- a/synapse/storage/databases/main/schema/delta/17/user_threepids.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-CREATE TABLE user_threepids (
- user_id TEXT NOT NULL,
- medium TEXT NOT NULL,
- address TEXT NOT NULL,
- validated_at BIGINT NOT NULL,
- added_at BIGINT NOT NULL,
- CONSTRAINT user_medium_address UNIQUE (user_id, medium, address)
-);
-CREATE INDEX user_threepids_user_id ON user_threepids(user_id);
diff --git a/synapse/storage/databases/main/schema/delta/18/server_keys_bigger_ints.sql b/synapse/storage/databases/main/schema/delta/18/server_keys_bigger_ints.sql
deleted file mode 100644
index 6e0871c92b..0000000000
--- a/synapse/storage/databases/main/schema/delta/18/server_keys_bigger_ints.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE IF NOT EXISTS new_server_keys_json (
- server_name TEXT NOT NULL, -- Server name.
- key_id TEXT NOT NULL, -- Requested key id.
- from_server TEXT NOT NULL, -- Which server the keys were fetched from.
- ts_added_ms BIGINT NOT NULL, -- When the keys were fetched
- ts_valid_until_ms BIGINT NOT NULL, -- When this version of the keys exipires.
- key_json bytea NOT NULL, -- JSON certificate for the remote server.
- CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server)
-);
-
-INSERT INTO new_server_keys_json
- SELECT server_name, key_id, from_server,ts_added_ms, ts_valid_until_ms, key_json FROM server_keys_json ;
-
-DROP TABLE server_keys_json;
-
-ALTER TABLE new_server_keys_json RENAME TO server_keys_json;
diff --git a/synapse/storage/databases/main/schema/delta/19/event_index.sql b/synapse/storage/databases/main/schema/delta/19/event_index.sql
deleted file mode 100644
index 18b97b4332..0000000000
--- a/synapse/storage/databases/main/schema/delta/19/event_index.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE INDEX events_order_topo_stream_room ON events(
- topological_ordering, stream_ordering, room_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/20/dummy.sql b/synapse/storage/databases/main/schema/delta/20/dummy.sql
deleted file mode 100644
index e0ac49d1ec..0000000000
--- a/synapse/storage/databases/main/schema/delta/20/dummy.sql
+++ /dev/null
@@ -1 +0,0 @@
-SELECT 1;
diff --git a/synapse/storage/databases/main/schema/delta/20/pushers.py b/synapse/storage/databases/main/schema/delta/20/pushers.py
deleted file mode 100644
index 45b846e6a7..0000000000
--- a/synapse/storage/databases/main/schema/delta/20/pushers.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# Copyright 2015, 2016 OpenMarket Ltd
-#
-# 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.
-
-
-"""
-Main purpose of this upgrade is to change the unique key on the
-pushers table again (it was missed when the v16 full schema was
-made) but this also changes the pushkey and data columns to text.
-When selecting a bytea column into a text column, postgres inserts
-the hex encoded data, and there's no portable way of getting the
-UTF-8 bytes, so we have to do it in Python.
-"""
-
-import logging
-
-logger = logging.getLogger(__name__)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- logger.info("Porting pushers table...")
- cur.execute(
- """
- CREATE TABLE IF NOT EXISTS pushers2 (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- access_token BIGINT DEFAULT NULL,
- profile_tag VARCHAR(32) NOT NULL,
- kind VARCHAR(8) NOT NULL,
- app_id VARCHAR(64) NOT NULL,
- app_display_name VARCHAR(64) NOT NULL,
- device_display_name VARCHAR(128) NOT NULL,
- pushkey TEXT NOT NULL,
- ts BIGINT NOT NULL,
- lang VARCHAR(8),
- data TEXT,
- last_token TEXT,
- last_success BIGINT,
- failing_since BIGINT,
- UNIQUE (app_id, pushkey, user_name)
- )
- """
- )
- cur.execute(
- """SELECT
- id, user_name, access_token, profile_tag, kind,
- app_id, app_display_name, device_display_name,
- pushkey, ts, lang, data, last_token, last_success,
- failing_since
- FROM pushers
- """
- )
- count = 0
- for row in cur.fetchall():
- row = list(row)
- row[8] = bytes(row[8]).decode("utf-8")
- row[11] = bytes(row[11]).decode("utf-8")
- cur.execute(
- """
- INSERT into pushers2 (
- id, user_name, access_token, profile_tag, kind,
- app_id, app_display_name, device_display_name,
- pushkey, ts, lang, data, last_token, last_success,
- failing_since
- ) values (%s)
- """
- % (",".join(["?" for _ in range(len(row))])),
- row,
- )
- count += 1
- cur.execute("DROP TABLE pushers")
- cur.execute("ALTER TABLE pushers2 RENAME TO pushers")
- logger.info("Moved %d pushers to new table", count)
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/21/end_to_end_keys.sql b/synapse/storage/databases/main/schema/delta/21/end_to_end_keys.sql
deleted file mode 100644
index 4c2fb20b77..0000000000
--- a/synapse/storage/databases/main/schema/delta/21/end_to_end_keys.sql
+++ /dev/null
@@ -1,34 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE IF NOT EXISTS e2e_device_keys_json (
- user_id TEXT NOT NULL, -- The user these keys are for.
- device_id TEXT NOT NULL, -- Which of the user's devices these keys are for.
- ts_added_ms BIGINT NOT NULL, -- When the keys were uploaded.
- key_json TEXT NOT NULL, -- The keys for the device as a JSON blob.
- CONSTRAINT e2e_device_keys_json_uniqueness UNIQUE (user_id, device_id)
-);
-
-
-CREATE TABLE IF NOT EXISTS e2e_one_time_keys_json (
- user_id TEXT NOT NULL, -- The user this one-time key is for.
- device_id TEXT NOT NULL, -- The device this one-time key is for.
- algorithm TEXT NOT NULL, -- Which algorithm this one-time key is for.
- key_id TEXT NOT NULL, -- An id for suppressing duplicate uploads.
- ts_added_ms BIGINT NOT NULL, -- When this key was uploaded.
- key_json TEXT NOT NULL, -- The key as a JSON blob.
- CONSTRAINT e2e_one_time_keys_json_uniqueness UNIQUE (user_id, device_id, algorithm, key_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/21/receipts.sql b/synapse/storage/databases/main/schema/delta/21/receipts.sql
deleted file mode 100644
index d070845477..0000000000
--- a/synapse/storage/databases/main/schema/delta/21/receipts.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE IF NOT EXISTS receipts_graph(
- room_id TEXT NOT NULL,
- receipt_type TEXT NOT NULL,
- user_id TEXT NOT NULL,
- event_ids TEXT NOT NULL,
- data TEXT NOT NULL,
- CONSTRAINT receipts_graph_uniqueness UNIQUE (room_id, receipt_type, user_id)
-);
-
-CREATE TABLE IF NOT EXISTS receipts_linearized (
- stream_id BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- receipt_type TEXT NOT NULL,
- user_id TEXT NOT NULL,
- event_id TEXT NOT NULL,
- data TEXT NOT NULL,
- CONSTRAINT receipts_linearized_uniqueness UNIQUE (room_id, receipt_type, user_id)
-);
-
-CREATE INDEX receipts_linearized_id ON receipts_linearized(
- stream_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/22/receipts_index.sql b/synapse/storage/databases/main/schema/delta/22/receipts_index.sql
deleted file mode 100644
index bfc0b3bcaa..0000000000
--- a/synapse/storage/databases/main/schema/delta/22/receipts_index.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
-CREATE INDEX receipts_linearized_room_stream ON receipts_linearized(
- room_id, stream_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/22/user_threepids_unique.sql b/synapse/storage/databases/main/schema/delta/22/user_threepids_unique.sql
deleted file mode 100644
index 87edfa454c..0000000000
--- a/synapse/storage/databases/main/schema/delta/22/user_threepids_unique.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-CREATE TABLE IF NOT EXISTS user_threepids2 (
- user_id TEXT NOT NULL,
- medium TEXT NOT NULL,
- address TEXT NOT NULL,
- validated_at BIGINT NOT NULL,
- added_at BIGINT NOT NULL,
- CONSTRAINT medium_address UNIQUE (medium, address)
-);
-
-INSERT INTO user_threepids2
- SELECT * FROM user_threepids WHERE added_at IN (
- SELECT max(added_at) FROM user_threepids GROUP BY medium, address
- )
-;
-
-DROP TABLE user_threepids;
-ALTER TABLE user_threepids2 RENAME TO user_threepids;
-
-CREATE INDEX user_threepids_user_id ON user_threepids(user_id);
diff --git a/synapse/storage/databases/main/schema/delta/24/stats_reporting.sql b/synapse/storage/databases/main/schema/delta/24/stats_reporting.sql
deleted file mode 100644
index acea7483bd..0000000000
--- a/synapse/storage/databases/main/schema/delta/24/stats_reporting.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
- /* We used to create a table called stats_reporting, but this is no longer
- * used and is removed in delta 54.
- */
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/25/fts.py b/synapse/storage/databases/main/schema/delta/25/fts.py
deleted file mode 100644
index 21f57825d4..0000000000
--- a/synapse/storage/databases/main/schema/delta/25/fts.py
+++ /dev/null
@@ -1,78 +0,0 @@
-# Copyright 2015, 2016 OpenMarket Ltd
-#
-# 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.
-import json
-import logging
-
-from synapse.storage.engines import PostgresEngine, Sqlite3Engine
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-POSTGRES_TABLE = """
-CREATE TABLE IF NOT EXISTS event_search (
- event_id TEXT,
- room_id TEXT,
- sender TEXT,
- key TEXT,
- vector tsvector
-);
-
-CREATE INDEX event_search_fts_idx ON event_search USING gin(vector);
-CREATE INDEX event_search_ev_idx ON event_search(event_id);
-CREATE INDEX event_search_ev_ridx ON event_search(room_id);
-"""
-
-
-SQLITE_TABLE = (
- "CREATE VIRTUAL TABLE event_search"
- " USING fts4 ( event_id, room_id, sender, key, value )"
-)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if isinstance(database_engine, PostgresEngine):
- for statement in get_statements(POSTGRES_TABLE.splitlines()):
- cur.execute(statement)
- elif isinstance(database_engine, Sqlite3Engine):
- cur.execute(SQLITE_TABLE)
- else:
- raise Exception("Unrecognized database engine")
-
- cur.execute("SELECT MIN(stream_ordering) FROM events")
- rows = cur.fetchall()
- min_stream_id = rows[0][0]
-
- cur.execute("SELECT MAX(stream_ordering) FROM events")
- rows = cur.fetchall()
- max_stream_id = rows[0][0]
-
- if min_stream_id is not None and max_stream_id is not None:
- progress = {
- "target_min_stream_id_inclusive": min_stream_id,
- "max_stream_id_exclusive": max_stream_id + 1,
- "rows_inserted": 0,
- }
- progress_json = json.dumps(progress)
-
- sql = (
- "INSERT into background_updates (update_name, progress_json)"
- " VALUES (?, ?)"
- )
-
- cur.execute(sql, ("event_search", progress_json))
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/25/guest_access.sql b/synapse/storage/databases/main/schema/delta/25/guest_access.sql
deleted file mode 100644
index 1ea389b471..0000000000
--- a/synapse/storage/databases/main/schema/delta/25/guest_access.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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 a manual index of guest_access content of state events,
- * so that we can join on them in SELECT statements.
- */
-CREATE TABLE IF NOT EXISTS guest_access(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- guest_access TEXT NOT NULL,
- UNIQUE (event_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/25/history_visibility.sql b/synapse/storage/databases/main/schema/delta/25/history_visibility.sql
deleted file mode 100644
index f468fc1897..0000000000
--- a/synapse/storage/databases/main/schema/delta/25/history_visibility.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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 a manual index of history_visibility content of state events,
- * so that we can join on them in SELECT statements.
- */
-CREATE TABLE IF NOT EXISTS history_visibility(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- history_visibility TEXT NOT NULL,
- UNIQUE (event_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/25/tags.sql b/synapse/storage/databases/main/schema/delta/25/tags.sql
deleted file mode 100644
index 7a32ce68e4..0000000000
--- a/synapse/storage/databases/main/schema/delta/25/tags.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE IF NOT EXISTS room_tags(
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- tag TEXT NOT NULL, -- The name of the tag.
- content TEXT NOT NULL, -- The JSON content of the tag.
- CONSTRAINT room_tag_uniqueness UNIQUE (user_id, room_id, tag)
-);
-
-CREATE TABLE IF NOT EXISTS room_tags_revisions (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- stream_id BIGINT NOT NULL, -- The current version of the room tags.
- CONSTRAINT room_tag_revisions_uniqueness UNIQUE (user_id, room_id)
-);
-
-CREATE TABLE IF NOT EXISTS private_user_data_max_stream_id(
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_id BIGINT NOT NULL,
- CHECK (Lock='X')
-);
-
-INSERT INTO private_user_data_max_stream_id (stream_id) VALUES (0);
diff --git a/synapse/storage/databases/main/schema/delta/26/account_data.sql b/synapse/storage/databases/main/schema/delta/26/account_data.sql
deleted file mode 100644
index e395de2b5e..0000000000
--- a/synapse/storage/databases/main/schema/delta/26/account_data.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-ALTER TABLE private_user_data_max_stream_id RENAME TO account_data_max_stream_id;
diff --git a/synapse/storage/databases/main/schema/delta/27/account_data.sql b/synapse/storage/databases/main/schema/delta/27/account_data.sql
deleted file mode 100644
index bf0558b5b3..0000000000
--- a/synapse/storage/databases/main/schema/delta/27/account_data.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS account_data(
- user_id TEXT NOT NULL,
- account_data_type TEXT NOT NULL, -- The type of the account_data.
- stream_id BIGINT NOT NULL, -- The version of the account_data.
- content TEXT NOT NULL, -- The JSON content of the account_data
- CONSTRAINT account_data_uniqueness UNIQUE (user_id, account_data_type)
-);
-
-
-CREATE TABLE IF NOT EXISTS room_account_data(
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- account_data_type TEXT NOT NULL, -- The type of the account_data.
- stream_id BIGINT NOT NULL, -- The version of the account_data.
- content TEXT NOT NULL, -- The JSON content of the account_data
- CONSTRAINT room_account_data_uniqueness UNIQUE (user_id, room_id, account_data_type)
-);
-
-
-CREATE INDEX account_data_stream_id on account_data(user_id, stream_id);
-CREATE INDEX room_account_data_stream_id on room_account_data(user_id, stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/27/forgotten_memberships.sql b/synapse/storage/databases/main/schema/delta/27/forgotten_memberships.sql
deleted file mode 100644
index e2094f37fe..0000000000
--- a/synapse/storage/databases/main/schema/delta/27/forgotten_memberships.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/*
- * Keeps track of what rooms users have left and don't want to be able to
- * access again.
- *
- * If all users on this server have left a room, we can delete the room
- * entirely.
- *
- * This column should always contain either 0 or 1.
- */
-
- ALTER TABLE room_memberships ADD COLUMN forgotten INTEGER DEFAULT 0;
diff --git a/synapse/storage/databases/main/schema/delta/27/ts.py b/synapse/storage/databases/main/schema/delta/27/ts.py
deleted file mode 100644
index 1c6058063f..0000000000
--- a/synapse/storage/databases/main/schema/delta/27/ts.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2015, 2016 OpenMarket Ltd
-#
-# 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.
-import json
-import logging
-
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-ALTER_TABLE = (
- "ALTER TABLE events ADD COLUMN origin_server_ts BIGINT;"
- "CREATE INDEX events_ts ON events(origin_server_ts, stream_ordering);"
-)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- for statement in get_statements(ALTER_TABLE.splitlines()):
- cur.execute(statement)
-
- cur.execute("SELECT MIN(stream_ordering) FROM events")
- rows = cur.fetchall()
- min_stream_id = rows[0][0]
-
- cur.execute("SELECT MAX(stream_ordering) FROM events")
- rows = cur.fetchall()
- max_stream_id = rows[0][0]
-
- if min_stream_id is not None and max_stream_id is not None:
- progress = {
- "target_min_stream_id_inclusive": min_stream_id,
- "max_stream_id_exclusive": max_stream_id + 1,
- "rows_inserted": 0,
- }
- progress_json = json.dumps(progress)
-
- sql = (
- "INSERT into background_updates (update_name, progress_json)"
- " VALUES (?, ?)"
- )
-
- cur.execute(sql, ("event_origin_server_ts", progress_json))
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/28/event_push_actions.sql b/synapse/storage/databases/main/schema/delta/28/event_push_actions.sql
deleted file mode 100644
index 4d519849df..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/event_push_actions.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2015 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS event_push_actions(
- room_id TEXT NOT NULL,
- event_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- profile_tag VARCHAR(32),
- actions TEXT NOT NULL,
- CONSTRAINT event_id_user_id_profile_tag_uniqueness UNIQUE (room_id, event_id, user_id, profile_tag)
-);
-
-
-CREATE INDEX event_push_actions_room_id_event_id_user_id_profile_tag on event_push_actions(room_id, event_id, user_id, profile_tag);
-CREATE INDEX event_push_actions_room_id_user_id on event_push_actions(room_id, user_id);
diff --git a/synapse/storage/databases/main/schema/delta/28/events_room_stream.sql b/synapse/storage/databases/main/schema/delta/28/events_room_stream.sql
deleted file mode 100644
index 36609475f1..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/events_room_stream.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
-*/
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
-CREATE INDEX events_room_stream on events(room_id, stream_ordering);
diff --git a/synapse/storage/databases/main/schema/delta/28/public_roms_index.sql b/synapse/storage/databases/main/schema/delta/28/public_roms_index.sql
deleted file mode 100644
index 6c1fd68c5b..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/public_roms_index.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
-*/
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
-CREATE INDEX public_room_index on rooms(is_public);
diff --git a/synapse/storage/databases/main/schema/delta/28/receipts_user_id_index.sql b/synapse/storage/databases/main/schema/delta/28/receipts_user_id_index.sql
deleted file mode 100644
index cb84c69baa..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/receipts_user_id_index.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
-CREATE INDEX receipts_linearized_user ON receipts_linearized(
- user_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/28/upgrade_times.sql b/synapse/storage/databases/main/schema/delta/28/upgrade_times.sql
deleted file mode 100644
index 3e4a9ab455..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/upgrade_times.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/*
- * Stores the timestamp when a user upgraded from a guest to a full user, if
- * that happened.
- */
-
-ALTER TABLE users ADD COLUMN upgrade_ts BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/28/users_is_guest.sql b/synapse/storage/databases/main/schema/delta/28/users_is_guest.sql
deleted file mode 100644
index 21d2b420bf..0000000000
--- a/synapse/storage/databases/main/schema/delta/28/users_is_guest.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-ALTER TABLE users ADD is_guest SMALLINT DEFAULT 0 NOT NULL;
-/*
- * NB: any guest users created between 27 and 28 will be incorrectly
- * marked as not guests: we don't bother to fill these in correctly
- * because guest access is not really complete in 27 anyway so it's
- * very unlikley there will be any guest users created.
- */
diff --git a/synapse/storage/databases/main/schema/delta/29/push_actions.sql b/synapse/storage/databases/main/schema/delta/29/push_actions.sql
deleted file mode 100644
index 84b21cf813..0000000000
--- a/synapse/storage/databases/main/schema/delta/29/push_actions.sql
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-ALTER TABLE event_push_actions ADD COLUMN topological_ordering BIGINT;
-ALTER TABLE event_push_actions ADD COLUMN stream_ordering BIGINT;
-ALTER TABLE event_push_actions ADD COLUMN notif SMALLINT;
-ALTER TABLE event_push_actions ADD COLUMN highlight SMALLINT;
-
-UPDATE event_push_actions SET stream_ordering = (
- SELECT stream_ordering FROM events WHERE event_id = event_push_actions.event_id
-), topological_ordering = (
- SELECT topological_ordering FROM events WHERE event_id = event_push_actions.event_id
-);
-
-UPDATE event_push_actions SET notif = 1, highlight = 0;
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
-CREATE INDEX event_push_actions_rm_tokens on event_push_actions(
- user_id, room_id, topological_ordering, stream_ordering
-);
diff --git a/synapse/storage/databases/main/schema/delta/30/alias_creator.sql b/synapse/storage/databases/main/schema/delta/30/alias_creator.sql
deleted file mode 100644
index c9d0dde638..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/alias_creator.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-ALTER TABLE room_aliases ADD COLUMN creator TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/30/as_users.py b/synapse/storage/databases/main/schema/delta/30/as_users.py
deleted file mode 100644
index 7f08fabe9f..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/as_users.py
+++ /dev/null
@@ -1,65 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-import logging
-
-from synapse.config.appservice import load_appservices
-
-logger = logging.getLogger(__name__)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- # NULL indicates user was not registered by an appservice.
- try:
- cur.execute("ALTER TABLE users ADD COLUMN appservice_id TEXT")
- except Exception:
- # Maybe we already added the column? Hope so...
- pass
-
-
-def run_upgrade(cur, database_engine, config, *args, **kwargs):
- cur.execute("SELECT name FROM users")
- rows = cur.fetchall()
-
- config_files = []
- try:
- config_files = config.app_service_config_files
- except AttributeError:
- logger.warning("Could not get app_service_config_files from config")
- pass
-
- appservices = load_appservices(config.server_name, config_files)
-
- owned = {}
-
- for row in rows:
- user_id = row[0]
- for appservice in appservices:
- if appservice.is_exclusive_user(user_id):
- if user_id in owned.keys():
- logger.error(
- "user_id %s was owned by more than one application"
- " service (IDs %s and %s); assigning arbitrarily to %s"
- % (user_id, owned[user_id], appservice.id, owned[user_id])
- )
- owned.setdefault(appservice.id, []).append(user_id)
-
- for as_id, user_ids in owned.items():
- n = 100
- user_chunks = (user_ids[i : i + 100] for i in range(0, len(user_ids), n))
- for chunk in user_chunks:
- cur.execute(
- "UPDATE users SET appservice_id = ? WHERE name IN (%s)"
- % (",".join("?" for _ in chunk),),
- [as_id] + chunk,
- )
diff --git a/synapse/storage/databases/main/schema/delta/30/deleted_pushers.sql b/synapse/storage/databases/main/schema/delta/30/deleted_pushers.sql
deleted file mode 100644
index 712c454aa1..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/deleted_pushers.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS deleted_pushers(
- stream_id BIGINT NOT NULL,
- app_id TEXT NOT NULL,
- pushkey TEXT NOT NULL,
- user_id TEXT NOT NULL,
- /* We only track the most recent delete for each app_id, pushkey and user_id. */
- UNIQUE (app_id, pushkey, user_id)
-);
-
-CREATE INDEX deleted_pushers_stream_id ON deleted_pushers (stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/30/presence_stream.sql b/synapse/storage/databases/main/schema/delta/30/presence_stream.sql
deleted file mode 100644
index 606bbb037d..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/presence_stream.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
- CREATE TABLE presence_stream(
- stream_id BIGINT,
- user_id TEXT,
- state TEXT,
- last_active_ts BIGINT,
- last_federation_update_ts BIGINT,
- last_user_sync_ts BIGINT,
- status_msg TEXT,
- currently_active BOOLEAN
- );
-
- CREATE INDEX presence_stream_id ON presence_stream(stream_id, user_id);
- CREATE INDEX presence_stream_user_id ON presence_stream(user_id);
- CREATE INDEX presence_stream_state ON presence_stream(state);
diff --git a/synapse/storage/databases/main/schema/delta/30/public_rooms.sql b/synapse/storage/databases/main/schema/delta/30/public_rooms.sql
deleted file mode 100644
index f09db4faa6..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/public_rooms.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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 release removes the restriction that published rooms must have an alias,
- * so we go back and ensure the only 'public' rooms are ones with an alias.
- * We use (1 = 0) and (1 = 1) so that it works in both postgres and sqlite
- */
-UPDATE rooms SET is_public = (1 = 0) WHERE is_public = (1 = 1) AND room_id not in (
- SELECT room_id FROM room_aliases
-);
diff --git a/synapse/storage/databases/main/schema/delta/30/push_rule_stream.sql b/synapse/storage/databases/main/schema/delta/30/push_rule_stream.sql
deleted file mode 100644
index 735aa8d5f6..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/push_rule_stream.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-
-CREATE TABLE push_rules_stream(
- stream_id BIGINT NOT NULL,
- event_stream_ordering BIGINT NOT NULL,
- user_id TEXT NOT NULL,
- rule_id TEXT NOT NULL,
- op TEXT NOT NULL, -- One of "ENABLE", "DISABLE", "ACTIONS", "ADD", "DELETE"
- priority_class SMALLINT,
- priority INTEGER,
- conditions TEXT,
- actions TEXT
-);
-
--- The extra data for each operation is:
--- * ENABLE, DISABLE, DELETE: []
--- * ACTIONS: ["actions"]
--- * ADD: ["priority_class", "priority", "actions", "conditions"]
-
--- Index for replication queries.
-CREATE INDEX push_rules_stream_id ON push_rules_stream(stream_id);
--- Index for /sync queries.
-CREATE INDEX push_rules_stream_user_stream_id on push_rules_stream(user_id, stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/30/threepid_guest_access_tokens.sql b/synapse/storage/databases/main/schema/delta/30/threepid_guest_access_tokens.sql
deleted file mode 100644
index 0dd2f1360c..0000000000
--- a/synapse/storage/databases/main/schema/delta/30/threepid_guest_access_tokens.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- Stores guest account access tokens generated for unbound 3pids.
-CREATE TABLE threepid_guest_access_tokens(
- medium TEXT, -- The medium of the 3pid. Must be "email".
- address TEXT, -- The 3pid address.
- guest_access_token TEXT, -- The access token for a guest user for this 3pid.
- first_inviter TEXT -- User ID of the first user to invite this 3pid to a room.
-);
-
-CREATE UNIQUE INDEX threepid_guest_access_tokens_index ON threepid_guest_access_tokens(medium, address);
diff --git a/synapse/storage/databases/main/schema/delta/31/invites.sql b/synapse/storage/databases/main/schema/delta/31/invites.sql
deleted file mode 100644
index 2c57846d5a..0000000000
--- a/synapse/storage/databases/main/schema/delta/31/invites.sql
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE local_invites(
- stream_id BIGINT NOT NULL,
- inviter TEXT NOT NULL,
- invitee TEXT NOT NULL,
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- locally_rejected TEXT,
- replaced_by TEXT
-);
-
--- Insert all invites for local users into new `invites` table
-INSERT INTO local_invites SELECT
- stream_ordering as stream_id,
- sender as inviter,
- state_key as invitee,
- event_id,
- room_id,
- NULL as locally_rejected,
- NULL as replaced_by
- FROM events
- NATURAL JOIN current_state_events
- NATURAL JOIN room_memberships
- WHERE membership = 'invite' AND state_key IN (SELECT name FROM users);
-
-CREATE INDEX local_invites_id ON local_invites(stream_id);
-CREATE INDEX local_invites_for_user_idx ON local_invites(invitee, locally_rejected, replaced_by, room_id);
diff --git a/synapse/storage/databases/main/schema/delta/31/local_media_repository_url_cache.sql b/synapse/storage/databases/main/schema/delta/31/local_media_repository_url_cache.sql
deleted file mode 100644
index 9efb4280eb..0000000000
--- a/synapse/storage/databases/main/schema/delta/31/local_media_repository_url_cache.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE local_media_repository_url_cache(
- url TEXT, -- the URL being cached
- response_code INTEGER, -- the HTTP response code of this download attempt
- etag TEXT, -- the etag header of this response
- expires INTEGER, -- the number of ms this response was valid for
- og TEXT, -- cache of the OG metadata of this URL as JSON
- media_id TEXT, -- the media_id, if any, of the URL's content in the repo
- download_ts BIGINT -- the timestamp of this download attempt
-);
-
-CREATE INDEX local_media_repository_url_cache_by_url_download_ts
- ON local_media_repository_url_cache(url, download_ts);
diff --git a/synapse/storage/databases/main/schema/delta/31/pushers.py b/synapse/storage/databases/main/schema/delta/31/pushers.py
deleted file mode 100644
index 5be81c806a..0000000000
--- a/synapse/storage/databases/main/schema/delta/31/pushers.py
+++ /dev/null
@@ -1,86 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-
-
-# Change the last_token to last_stream_ordering now that pushers no longer
-# listen on an event stream but instead select out of the event_push_actions
-# table.
-
-
-import logging
-
-logger = logging.getLogger(__name__)
-
-
-def token_to_stream_ordering(token):
- return int(token[1:].split("_")[0])
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- logger.info("Porting pushers table, delta 31...")
- cur.execute(
- """
- CREATE TABLE IF NOT EXISTS pushers2 (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- access_token BIGINT DEFAULT NULL,
- profile_tag VARCHAR(32) NOT NULL,
- kind VARCHAR(8) NOT NULL,
- app_id VARCHAR(64) NOT NULL,
- app_display_name VARCHAR(64) NOT NULL,
- device_display_name VARCHAR(128) NOT NULL,
- pushkey TEXT NOT NULL,
- ts BIGINT NOT NULL,
- lang VARCHAR(8),
- data TEXT,
- last_stream_ordering INTEGER,
- last_success BIGINT,
- failing_since BIGINT,
- UNIQUE (app_id, pushkey, user_name)
- )
- """
- )
- cur.execute(
- """SELECT
- id, user_name, access_token, profile_tag, kind,
- app_id, app_display_name, device_display_name,
- pushkey, ts, lang, data, last_token, last_success,
- failing_since
- FROM pushers
- """
- )
- count = 0
- for row in cur.fetchall():
- row = list(row)
- row[12] = token_to_stream_ordering(row[12])
- cur.execute(
- """
- INSERT into pushers2 (
- id, user_name, access_token, profile_tag, kind,
- app_id, app_display_name, device_display_name,
- pushkey, ts, lang, data, last_stream_ordering, last_success,
- failing_since
- ) values (%s)
- """
- % (",".join(["?" for _ in range(len(row))])),
- row,
- )
- count += 1
- cur.execute("DROP TABLE pushers")
- cur.execute("ALTER TABLE pushers2 RENAME TO pushers")
- logger.info("Moved %d pushers to new table", count)
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/31/pushers_index.sql b/synapse/storage/databases/main/schema/delta/31/pushers_index.sql
deleted file mode 100644
index a82add88fd..0000000000
--- a/synapse/storage/databases/main/schema/delta/31/pushers_index.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/** Using CREATE INDEX directly is deprecated in favour of using background
- * update see synapse/storage/schema/delta/33/access_tokens_device_index.sql
- * and synapse/storage/registration.py for an example using
- * "access_tokens_device_index" **/
- CREATE INDEX event_push_actions_stream_ordering on event_push_actions(
- stream_ordering, user_id
- );
diff --git a/synapse/storage/databases/main/schema/delta/31/search_update.py b/synapse/storage/databases/main/schema/delta/31/search_update.py
deleted file mode 100644
index b84c844e3a..0000000000
--- a/synapse/storage/databases/main/schema/delta/31/search_update.py
+++ /dev/null
@@ -1,62 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-import json
-import logging
-
-from synapse.storage.engines import PostgresEngine
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-ALTER_TABLE = """
-ALTER TABLE event_search ADD COLUMN origin_server_ts BIGINT;
-ALTER TABLE event_search ADD COLUMN stream_ordering BIGINT;
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if not isinstance(database_engine, PostgresEngine):
- return
-
- for statement in get_statements(ALTER_TABLE.splitlines()):
- cur.execute(statement)
-
- cur.execute("SELECT MIN(stream_ordering) FROM events")
- rows = cur.fetchall()
- min_stream_id = rows[0][0]
-
- cur.execute("SELECT MAX(stream_ordering) FROM events")
- rows = cur.fetchall()
- max_stream_id = rows[0][0]
-
- if min_stream_id is not None and max_stream_id is not None:
- progress = {
- "target_min_stream_id_inclusive": min_stream_id,
- "max_stream_id_exclusive": max_stream_id + 1,
- "rows_inserted": 0,
- "have_added_indexes": False,
- }
- progress_json = json.dumps(progress)
-
- sql = (
- "INSERT into background_updates (update_name, progress_json)"
- " VALUES (?, ?)"
- )
-
- cur.execute(sql, ("event_search_order", progress_json))
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/32/events.sql b/synapse/storage/databases/main/schema/delta/32/events.sql
deleted file mode 100644
index 1dd0f9e170..0000000000
--- a/synapse/storage/databases/main/schema/delta/32/events.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-ALTER TABLE events ADD COLUMN received_ts BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/32/openid.sql b/synapse/storage/databases/main/schema/delta/32/openid.sql
deleted file mode 100644
index 36f37b11c8..0000000000
--- a/synapse/storage/databases/main/schema/delta/32/openid.sql
+++ /dev/null
@@ -1,9 +0,0 @@
-
-CREATE TABLE open_id_tokens (
- token TEXT NOT NULL PRIMARY KEY,
- ts_valid_until_ms bigint NOT NULL,
- user_id TEXT NOT NULL,
- UNIQUE (token)
-);
-
-CREATE index open_id_tokens_ts_valid_until_ms ON open_id_tokens(ts_valid_until_ms);
diff --git a/synapse/storage/databases/main/schema/delta/32/pusher_throttle.sql b/synapse/storage/databases/main/schema/delta/32/pusher_throttle.sql
deleted file mode 100644
index d86d30c13c..0000000000
--- a/synapse/storage/databases/main/schema/delta/32/pusher_throttle.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE pusher_throttle(
- pusher BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- last_sent_ts BIGINT,
- throttle_ms BIGINT,
- PRIMARY KEY (pusher, room_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/32/remove_indices.sql b/synapse/storage/databases/main/schema/delta/32/remove_indices.sql
deleted file mode 100644
index 2de50d408c..0000000000
--- a/synapse/storage/databases/main/schema/delta/32/remove_indices.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
--- The following indices are redundant, other indices are equivalent or
--- supersets
-DROP INDEX IF EXISTS events_room_id; -- Prefix of events_room_stream
-DROP INDEX IF EXISTS events_order; -- Prefix of events_order_topo_stream_room
-DROP INDEX IF EXISTS events_topological_ordering; -- Prefix of events_order_topo_stream_room
-DROP INDEX IF EXISTS events_stream_ordering; -- Duplicate of PRIMARY KEY
-DROP INDEX IF EXISTS event_to_state_groups_id; -- Duplicate of PRIMARY KEY
-DROP INDEX IF EXISTS event_push_actions_room_id_event_id_user_id_profile_tag; -- Duplicate of UNIQUE CONSTRAINT
-
-DROP INDEX IF EXISTS st_extrem_id; -- Prefix of UNIQUE CONSTRAINT
-DROP INDEX IF EXISTS event_signatures_id; -- Prefix of UNIQUE CONSTRAINT
-DROP INDEX IF EXISTS redactions_event_id; -- Duplicate of UNIQUE CONSTRAINT
-
--- The following indices were unused
-DROP INDEX IF EXISTS remote_media_cache_thumbnails_media_id;
-DROP INDEX IF EXISTS evauth_edges_auth_id;
-DROP INDEX IF EXISTS presence_stream_state;
diff --git a/synapse/storage/databases/main/schema/delta/32/reports.sql b/synapse/storage/databases/main/schema/delta/32/reports.sql
deleted file mode 100644
index d13609776f..0000000000
--- a/synapse/storage/databases/main/schema/delta/32/reports.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE event_reports(
- id BIGINT NOT NULL PRIMARY KEY,
- received_ts BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- event_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- reason TEXT,
- content TEXT
-);
diff --git a/synapse/storage/databases/main/schema/delta/33/access_tokens_device_index.sql b/synapse/storage/databases/main/schema/delta/33/access_tokens_device_index.sql
deleted file mode 100644
index 61ad3fe3e8..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/access_tokens_device_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('access_tokens_device_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/33/devices.sql b/synapse/storage/databases/main/schema/delta/33/devices.sql
deleted file mode 100644
index eca7268d82..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/devices.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE devices (
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL,
- display_name TEXT,
- CONSTRAINT device_uniqueness UNIQUE (user_id, device_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys.sql b/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys.sql
deleted file mode 100644
index aa4a3b9f2f..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- make sure that we have a device record for each set of E2E keys, so that the
--- user can delete them if they like.
-INSERT INTO devices
- SELECT user_id, device_id, NULL FROM e2e_device_keys_json;
diff --git a/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys_clear_unknown_device.sql b/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys_clear_unknown_device.sql
deleted file mode 100644
index 6671573398..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/devices_for_e2e_keys_clear_unknown_device.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- a previous version of the "devices_for_e2e_keys" delta set all the device
--- names to "unknown device". This wasn't terribly helpful
-UPDATE devices
- SET display_name = NULL
- WHERE display_name = 'unknown device';
diff --git a/synapse/storage/databases/main/schema/delta/33/event_fields.py b/synapse/storage/databases/main/schema/delta/33/event_fields.py
deleted file mode 100644
index e928c66a8f..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/event_fields.py
+++ /dev/null
@@ -1,57 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-import json
-import logging
-
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-ALTER_TABLE = """
-ALTER TABLE events ADD COLUMN sender TEXT;
-ALTER TABLE events ADD COLUMN contains_url BOOLEAN;
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- for statement in get_statements(ALTER_TABLE.splitlines()):
- cur.execute(statement)
-
- cur.execute("SELECT MIN(stream_ordering) FROM events")
- rows = cur.fetchall()
- min_stream_id = rows[0][0]
-
- cur.execute("SELECT MAX(stream_ordering) FROM events")
- rows = cur.fetchall()
- max_stream_id = rows[0][0]
-
- if min_stream_id is not None and max_stream_id is not None:
- progress = {
- "target_min_stream_id_inclusive": min_stream_id,
- "max_stream_id_exclusive": max_stream_id + 1,
- "rows_inserted": 0,
- }
- progress_json = json.dumps(progress)
-
- sql = (
- "INSERT into background_updates (update_name, progress_json)"
- " VALUES (?, ?)"
- )
-
- cur.execute(sql, ("event_fields_sender_url", progress_json))
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/33/remote_media_ts.py b/synapse/storage/databases/main/schema/delta/33/remote_media_ts.py
deleted file mode 100644
index 3907189e29..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/remote_media_ts.py
+++ /dev/null
@@ -1,28 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-
-import time
-
-ALTER_TABLE = "ALTER TABLE remote_media_cache ADD COLUMN last_access_ts BIGINT"
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- cur.execute(ALTER_TABLE)
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- cur.execute(
- "UPDATE remote_media_cache SET last_access_ts = ?",
- (int(time.time() * 1000),),
- )
diff --git a/synapse/storage/databases/main/schema/delta/33/user_ips_index.sql b/synapse/storage/databases/main/schema/delta/33/user_ips_index.sql
deleted file mode 100644
index 473f75a78e..0000000000
--- a/synapse/storage/databases/main/schema/delta/33/user_ips_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('user_ips_device_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/34/appservice_stream.sql b/synapse/storage/databases/main/schema/delta/34/appservice_stream.sql
deleted file mode 100644
index 69e16eda0f..0000000000
--- a/synapse/storage/databases/main/schema/delta/34/appservice_stream.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS appservice_stream_position(
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_ordering BIGINT,
- CHECK (Lock='X')
-);
-
-INSERT INTO appservice_stream_position (stream_ordering)
- SELECT COALESCE(MAX(stream_ordering), 0) FROM events;
diff --git a/synapse/storage/databases/main/schema/delta/34/cache_stream.py b/synapse/storage/databases/main/schema/delta/34/cache_stream.py
deleted file mode 100644
index cf09e43e2b..0000000000
--- a/synapse/storage/databases/main/schema/delta/34/cache_stream.py
+++ /dev/null
@@ -1,46 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-
-import logging
-
-from synapse.storage.engines import PostgresEngine
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-# This stream is used to notify replication slaves that some caches have
-# been invalidated that they cannot infer from the other streams.
-CREATE_TABLE = """
-CREATE TABLE cache_invalidation_stream (
- stream_id BIGINT,
- cache_func TEXT,
- keys TEXT[],
- invalidation_ts BIGINT
-);
-
-CREATE INDEX cache_invalidation_stream_id ON cache_invalidation_stream(stream_id);
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if not isinstance(database_engine, PostgresEngine):
- return
-
- for statement in get_statements(CREATE_TABLE.splitlines()):
- cur.execute(statement)
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/34/device_inbox.sql b/synapse/storage/databases/main/schema/delta/34/device_inbox.sql
deleted file mode 100644
index e68844c74a..0000000000
--- a/synapse/storage/databases/main/schema/delta/34/device_inbox.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE device_inbox (
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL,
- stream_id BIGINT NOT NULL,
- message_json TEXT NOT NULL -- {"type":, "sender":, "content",}
-);
-
-CREATE INDEX device_inbox_user_stream_id ON device_inbox(user_id, device_id, stream_id);
-CREATE INDEX device_inbox_stream_id ON device_inbox(stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/34/push_display_name_rename.sql b/synapse/storage/databases/main/schema/delta/34/push_display_name_rename.sql
deleted file mode 100644
index 0d9fe1a99a..0000000000
--- a/synapse/storage/databases/main/schema/delta/34/push_display_name_rename.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-DELETE FROM push_rules WHERE rule_id = 'global/override/.m.rule.contains_display_name';
-UPDATE push_rules SET rule_id = 'global/override/.m.rule.contains_display_name' WHERE rule_id = 'global/underride/.m.rule.contains_display_name';
-
-DELETE FROM push_rules_enable WHERE rule_id = 'global/override/.m.rule.contains_display_name';
-UPDATE push_rules_enable SET rule_id = 'global/override/.m.rule.contains_display_name' WHERE rule_id = 'global/underride/.m.rule.contains_display_name';
diff --git a/synapse/storage/databases/main/schema/delta/34/received_txn_purge.py b/synapse/storage/databases/main/schema/delta/34/received_txn_purge.py
deleted file mode 100644
index 67d505e68b..0000000000
--- a/synapse/storage/databases/main/schema/delta/34/received_txn_purge.py
+++ /dev/null
@@ -1,32 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-
-import logging
-
-from synapse.storage.engines import PostgresEngine
-
-logger = logging.getLogger(__name__)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if isinstance(database_engine, PostgresEngine):
- cur.execute("TRUNCATE received_transactions")
- else:
- cur.execute("DELETE FROM received_transactions")
-
- cur.execute("CREATE INDEX received_transactions_ts ON received_transactions(ts)")
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/35/contains_url.sql b/synapse/storage/databases/main/schema/delta/35/contains_url.sql
deleted file mode 100644
index 6cd123027b..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/contains_url.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
- INSERT into background_updates (update_name, progress_json)
- VALUES ('event_contains_url_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/35/device_outbox.sql b/synapse/storage/databases/main/schema/delta/35/device_outbox.sql
deleted file mode 100644
index 17e6c43105..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/device_outbox.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-DROP TABLE IF EXISTS device_federation_outbox;
-CREATE TABLE device_federation_outbox (
- destination TEXT NOT NULL,
- stream_id BIGINT NOT NULL,
- queued_ts BIGINT NOT NULL,
- messages_json TEXT NOT NULL
-);
-
-
-DROP INDEX IF EXISTS device_federation_outbox_destination_id;
-CREATE INDEX device_federation_outbox_destination_id
- ON device_federation_outbox(destination, stream_id);
-
-
-DROP TABLE IF EXISTS device_federation_inbox;
-CREATE TABLE device_federation_inbox (
- origin TEXT NOT NULL,
- message_id TEXT NOT NULL,
- received_ts BIGINT NOT NULL
-);
-
-DROP INDEX IF EXISTS device_federation_inbox_sender_id;
-CREATE INDEX device_federation_inbox_sender_id
- ON device_federation_inbox(origin, message_id);
diff --git a/synapse/storage/databases/main/schema/delta/35/device_stream_id.sql b/synapse/storage/databases/main/schema/delta/35/device_stream_id.sql
deleted file mode 100644
index 7ab7d942e2..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/device_stream_id.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE device_max_stream_id (
- stream_id BIGINT NOT NULL
-);
-
-INSERT INTO device_max_stream_id (stream_id)
- SELECT COALESCE(MAX(stream_id), 0) FROM device_inbox;
diff --git a/synapse/storage/databases/main/schema/delta/35/event_push_actions_index.sql b/synapse/storage/databases/main/schema/delta/35/event_push_actions_index.sql
deleted file mode 100644
index 2e836d8e9c..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/event_push_actions_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
- INSERT into background_updates (update_name, progress_json)
- VALUES ('epa_highlight_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/35/public_room_list_change_stream.sql b/synapse/storage/databases/main/schema/delta/35/public_room_list_change_stream.sql
deleted file mode 100644
index dd2bf2e28a..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/public_room_list_change_stream.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE public_room_list_stream (
- stream_id BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- visibility BOOLEAN NOT NULL
-);
-
-INSERT INTO public_room_list_stream (stream_id, room_id, visibility)
- SELECT 1, room_id, is_public FROM rooms
- WHERE is_public = CAST(1 AS BOOLEAN);
-
-CREATE INDEX public_room_list_stream_idx on public_room_list_stream(
- stream_id
-);
-
-CREATE INDEX public_room_list_stream_rm_idx on public_room_list_stream(
- room_id, stream_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/35/stream_order_to_extrem.sql b/synapse/storage/databases/main/schema/delta/35/stream_order_to_extrem.sql
deleted file mode 100644
index 2b945d8a57..0000000000
--- a/synapse/storage/databases/main/schema/delta/35/stream_order_to_extrem.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE stream_ordering_to_exterm (
- stream_ordering BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- event_id TEXT NOT NULL
-);
-
-INSERT INTO stream_ordering_to_exterm (stream_ordering, room_id, event_id)
- SELECT stream_ordering, room_id, event_id FROM event_forward_extremities
- INNER JOIN (
- SELECT room_id, max(stream_ordering) as stream_ordering FROM events
- INNER JOIN event_forward_extremities USING (room_id, event_id)
- GROUP BY room_id
- ) AS rms USING (room_id);
-
-CREATE INDEX stream_ordering_to_exterm_idx on stream_ordering_to_exterm(
- stream_ordering
-);
-
-CREATE INDEX stream_ordering_to_exterm_rm_idx on stream_ordering_to_exterm(
- room_id, stream_ordering
-);
diff --git a/synapse/storage/databases/main/schema/delta/36/readd_public_rooms.sql b/synapse/storage/databases/main/schema/delta/36/readd_public_rooms.sql
deleted file mode 100644
index 90d8fd18f9..0000000000
--- a/synapse/storage/databases/main/schema/delta/36/readd_public_rooms.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- Re-add some entries to stream_ordering_to_exterm that were incorrectly deleted
-INSERT INTO stream_ordering_to_exterm (stream_ordering, room_id, event_id)
- SELECT
- (SELECT stream_ordering FROM events where event_id = e.event_id) AS stream_ordering,
- room_id,
- event_id
- FROM event_forward_extremities AS e
- WHERE NOT EXISTS (
- SELECT room_id FROM stream_ordering_to_exterm AS s
- WHERE s.room_id = e.room_id
- );
diff --git a/synapse/storage/databases/main/schema/delta/37/remove_auth_idx.py b/synapse/storage/databases/main/schema/delta/37/remove_auth_idx.py
deleted file mode 100644
index a377884169..0000000000
--- a/synapse/storage/databases/main/schema/delta/37/remove_auth_idx.py
+++ /dev/null
@@ -1,85 +0,0 @@
-# Copyright 2016 OpenMarket Ltd
-#
-# 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.
-
-import logging
-
-from synapse.storage.engines import PostgresEngine
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-DROP_INDICES = """
--- We only ever query based on event_id
-DROP INDEX IF EXISTS state_events_room_id;
-DROP INDEX IF EXISTS state_events_type;
-DROP INDEX IF EXISTS state_events_state_key;
-
--- room_id is indexed elsewhere
-DROP INDEX IF EXISTS current_state_events_room_id;
-DROP INDEX IF EXISTS current_state_events_state_key;
-DROP INDEX IF EXISTS current_state_events_type;
-
-DROP INDEX IF EXISTS transactions_have_ref;
-
--- (topological_ordering, stream_ordering, room_id) seems like a strange index,
--- and is used incredibly rarely.
-DROP INDEX IF EXISTS events_order_topo_stream_room;
-
--- an equivalent index to this actually gets re-created in delta 41, because it
--- turned out that deleting it wasn't a great plan :/. In any case, let's
--- delete it here, and delta 41 will create a new one with an added UNIQUE
--- constraint
-DROP INDEX IF EXISTS event_search_ev_idx;
-"""
-
-POSTGRES_DROP_CONSTRAINT = """
-ALTER TABLE event_auth DROP CONSTRAINT IF EXISTS event_auth_event_id_auth_id_room_id_key;
-"""
-
-SQLITE_DROP_CONSTRAINT = """
-DROP INDEX IF EXISTS evauth_edges_id;
-
-CREATE TABLE IF NOT EXISTS event_auth_new(
- event_id TEXT NOT NULL,
- auth_id TEXT NOT NULL,
- room_id TEXT NOT NULL
-);
-
-INSERT INTO event_auth_new
- SELECT event_id, auth_id, room_id
- FROM event_auth;
-
-DROP TABLE event_auth;
-
-ALTER TABLE event_auth_new RENAME TO event_auth;
-
-CREATE INDEX evauth_edges_id ON event_auth(event_id);
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- for statement in get_statements(DROP_INDICES.splitlines()):
- cur.execute(statement)
-
- if isinstance(database_engine, PostgresEngine):
- drop_constraint = POSTGRES_DROP_CONSTRAINT
- else:
- drop_constraint = SQLITE_DROP_CONSTRAINT
-
- for statement in get_statements(drop_constraint.splitlines()):
- cur.execute(statement)
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/37/user_threepids.sql b/synapse/storage/databases/main/schema/delta/37/user_threepids.sql
deleted file mode 100644
index cf7a90dd10..0000000000
--- a/synapse/storage/databases/main/schema/delta/37/user_threepids.sql
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/*
- * Update any email addresses that were stored with mixed case into all
- * lowercase
- */
-
- -- There may be "duplicate" emails (with different case) already in the table,
- -- so we find them and move all but the most recently used account.
- UPDATE user_threepids
- SET medium = 'email_old'
- WHERE medium = 'email'
- AND address IN (
- -- We select all the addresses that are linked to the user_id that is NOT
- -- the most recently created.
- SELECT u.address
- FROM
- user_threepids AS u,
- -- `duplicate_addresses` is a table of all the email addresses that
- -- appear multiple times and when the binding was created
- (
- SELECT lower(u1.address) AS address, max(u1.added_at) AS max_ts
- FROM user_threepids AS u1
- INNER JOIN user_threepids AS u2 ON u1.medium = u2.medium AND lower(u1.address) = lower(u2.address) AND u1.address != u2.address
- WHERE u1.medium = 'email' AND u2.medium = 'email'
- GROUP BY lower(u1.address)
- ) AS duplicate_addresses
- WHERE
- lower(u.address) = duplicate_addresses.address
- AND u.added_at != max_ts -- NOT the most recently created
- );
-
-
--- This update is now safe since we've removed the duplicate addresses.
-UPDATE user_threepids SET address = LOWER(address) WHERE medium = 'email';
-
-
-/* Add an index for the select we do on passwored reset */
-CREATE INDEX user_threepids_medium_address on user_threepids (medium, address);
diff --git a/synapse/storage/databases/main/schema/delta/38/postgres_fts_gist.sql b/synapse/storage/databases/main/schema/delta/38/postgres_fts_gist.sql
deleted file mode 100644
index 515e6b8e84..0000000000
--- a/synapse/storage/databases/main/schema/delta/38/postgres_fts_gist.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- We no longer do this given we back it out again in schema 47
-
--- INSERT into background_updates (update_name, progress_json)
--- VALUES ('event_search_postgres_gist', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/39/appservice_room_list.sql b/synapse/storage/databases/main/schema/delta/39/appservice_room_list.sql
deleted file mode 100644
index 74bdc49073..0000000000
--- a/synapse/storage/databases/main/schema/delta/39/appservice_room_list.sql
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE appservice_room_list(
- appservice_id TEXT NOT NULL,
- network_id TEXT NOT NULL,
- room_id TEXT NOT NULL
-);
-
--- Each appservice can have multiple published room lists associated with them,
--- keyed of a particular network_id
-CREATE UNIQUE INDEX appservice_room_list_idx ON appservice_room_list(
- appservice_id, network_id, room_id
-);
-
-ALTER TABLE public_room_list_stream ADD COLUMN appservice_id TEXT;
-ALTER TABLE public_room_list_stream ADD COLUMN network_id TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/39/device_federation_stream_idx.sql b/synapse/storage/databases/main/schema/delta/39/device_federation_stream_idx.sql
deleted file mode 100644
index 00be801e90..0000000000
--- a/synapse/storage/databases/main/schema/delta/39/device_federation_stream_idx.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE INDEX device_federation_outbox_id ON device_federation_outbox(stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/39/event_push_index.sql b/synapse/storage/databases/main/schema/delta/39/event_push_index.sql
deleted file mode 100644
index de2ad93e5c..0000000000
--- a/synapse/storage/databases/main/schema/delta/39/event_push_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('event_push_actions_highlights_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/39/federation_out_position.sql b/synapse/storage/databases/main/schema/delta/39/federation_out_position.sql
deleted file mode 100644
index 5af814290b..0000000000
--- a/synapse/storage/databases/main/schema/delta/39/federation_out_position.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
- CREATE TABLE federation_stream_position(
- type TEXT NOT NULL,
- stream_id INTEGER NOT NULL
- );
-
- INSERT INTO federation_stream_position (type, stream_id) VALUES ('federation', -1);
- INSERT INTO federation_stream_position (type, stream_id) SELECT 'events', coalesce(max(stream_ordering), -1) FROM events;
diff --git a/synapse/storage/databases/main/schema/delta/39/membership_profile.sql b/synapse/storage/databases/main/schema/delta/39/membership_profile.sql
deleted file mode 100644
index 1bf911c8ab..0000000000
--- a/synapse/storage/databases/main/schema/delta/39/membership_profile.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-ALTER TABLE room_memberships ADD COLUMN display_name TEXT;
-ALTER TABLE room_memberships ADD COLUMN avatar_url TEXT;
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('room_membership_profile_update', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/40/current_state_idx.sql b/synapse/storage/databases/main/schema/delta/40/current_state_idx.sql
deleted file mode 100644
index 7ffa189f39..0000000000
--- a/synapse/storage/databases/main/schema/delta/40/current_state_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('current_state_members_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/40/device_inbox.sql b/synapse/storage/databases/main/schema/delta/40/device_inbox.sql
deleted file mode 100644
index b9fe1f0480..0000000000
--- a/synapse/storage/databases/main/schema/delta/40/device_inbox.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- turn the pre-fill startup query into a index-only scan on postgresql.
-INSERT into background_updates (update_name, progress_json)
- VALUES ('device_inbox_stream_index', '{}');
-
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES ('device_inbox_stream_drop', '{}', 'device_inbox_stream_index');
diff --git a/synapse/storage/databases/main/schema/delta/40/device_list_streams.sql b/synapse/storage/databases/main/schema/delta/40/device_list_streams.sql
deleted file mode 100644
index dd6dcb65f1..0000000000
--- a/synapse/storage/databases/main/schema/delta/40/device_list_streams.sql
+++ /dev/null
@@ -1,60 +0,0 @@
-/* Copyright 2017 OpenMarket Ltd
- *
- * 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.
- */
-
--- Cache of remote devices.
-CREATE TABLE device_lists_remote_cache (
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL,
- content TEXT NOT NULL
-);
-
--- The last update we got for a user. Empty if we're not receiving updates for
--- that user.
-CREATE TABLE device_lists_remote_extremeties (
- user_id TEXT NOT NULL,
- stream_id TEXT NOT NULL
-);
-
--- we used to create non-unique indexes on these tables, but as of update 52 we create
--- unique indexes concurrently:
---
--- CREATE INDEX device_lists_remote_cache_id ON device_lists_remote_cache(user_id, device_id);
--- CREATE INDEX device_lists_remote_extremeties_id ON device_lists_remote_extremeties(user_id, stream_id);
-
-
--- Stream of device lists updates. Includes both local and remotes
-CREATE TABLE device_lists_stream (
- stream_id BIGINT NOT NULL,
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL
-);
-
-CREATE INDEX device_lists_stream_id ON device_lists_stream(stream_id, user_id);
-
-
--- The stream of updates to send to other servers. We keep at least one row
--- per user that was sent so that the prev_id for any new updates can be
--- calculated
-CREATE TABLE device_lists_outbound_pokes (
- destination TEXT NOT NULL,
- stream_id BIGINT NOT NULL,
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL,
- sent BOOLEAN NOT NULL,
- ts BIGINT NOT NULL -- So that in future we can clear out pokes to dead servers
-);
-
-CREATE INDEX device_lists_outbound_pokes_id ON device_lists_outbound_pokes(destination, stream_id);
-CREATE INDEX device_lists_outbound_pokes_user ON device_lists_outbound_pokes(destination, user_id);
diff --git a/synapse/storage/databases/main/schema/delta/40/event_push_summary.sql b/synapse/storage/databases/main/schema/delta/40/event_push_summary.sql
deleted file mode 100644
index 3918f0b794..0000000000
--- a/synapse/storage/databases/main/schema/delta/40/event_push_summary.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2017 OpenMarket Ltd
- *
- * 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.
- */
-
--- Aggregate of old notification counts that have been deleted out of the
--- main event_push_actions table. This count does not include those that were
--- highlights, as they remain in the event_push_actions table.
-CREATE TABLE event_push_summary (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- notif_count BIGINT NOT NULL,
- stream_ordering BIGINT NOT NULL
-);
-
-CREATE INDEX event_push_summary_user_rm ON event_push_summary(user_id, room_id);
-
-
--- The stream ordering up to which we have aggregated the event_push_actions
--- table into event_push_summary
-CREATE TABLE event_push_summary_stream_ordering (
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_ordering BIGINT NOT NULL,
- CHECK (Lock='X')
-);
-
-INSERT INTO event_push_summary_stream_ordering (stream_ordering) VALUES (0);
diff --git a/synapse/storage/databases/main/schema/delta/40/pushers.sql b/synapse/storage/databases/main/schema/delta/40/pushers.sql
deleted file mode 100644
index 054a223f14..0000000000
--- a/synapse/storage/databases/main/schema/delta/40/pushers.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS pushers2 (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- access_token BIGINT DEFAULT NULL,
- profile_tag TEXT NOT NULL,
- kind TEXT NOT NULL,
- app_id TEXT NOT NULL,
- app_display_name TEXT NOT NULL,
- device_display_name TEXT NOT NULL,
- pushkey TEXT NOT NULL,
- ts BIGINT NOT NULL,
- lang TEXT,
- data TEXT,
- last_stream_ordering INTEGER,
- last_success BIGINT,
- failing_since BIGINT,
- UNIQUE (app_id, pushkey, user_name)
-);
-
-INSERT INTO pushers2 SELECT * FROM PUSHERS;
-
-DROP TABLE PUSHERS;
-
-ALTER TABLE pushers2 RENAME TO pushers;
diff --git a/synapse/storage/databases/main/schema/delta/41/device_list_stream_idx.sql b/synapse/storage/databases/main/schema/delta/41/device_list_stream_idx.sql
deleted file mode 100644
index b7bee8b692..0000000000
--- a/synapse/storage/databases/main/schema/delta/41/device_list_stream_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('device_lists_stream_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/41/device_outbound_index.sql b/synapse/storage/databases/main/schema/delta/41/device_outbound_index.sql
deleted file mode 100644
index 62f0b9892b..0000000000
--- a/synapse/storage/databases/main/schema/delta/41/device_outbound_index.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-CREATE INDEX device_lists_outbound_pokes_stream ON device_lists_outbound_pokes(stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/41/event_search_event_id_idx.sql b/synapse/storage/databases/main/schema/delta/41/event_search_event_id_idx.sql
deleted file mode 100644
index 5d9cfecf36..0000000000
--- a/synapse/storage/databases/main/schema/delta/41/event_search_event_id_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('event_search_event_id_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/41/ratelimit.sql b/synapse/storage/databases/main/schema/delta/41/ratelimit.sql
deleted file mode 100644
index a194bf0238..0000000000
--- a/synapse/storage/databases/main/schema/delta/41/ratelimit.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-CREATE TABLE ratelimit_override (
- user_id TEXT NOT NULL,
- messages_per_second BIGINT,
- burst_count BIGINT
-);
-
-CREATE UNIQUE INDEX ratelimit_override_idx ON ratelimit_override(user_id);
diff --git a/synapse/storage/databases/main/schema/delta/42/current_state_delta.sql b/synapse/storage/databases/main/schema/delta/42/current_state_delta.sql
deleted file mode 100644
index d28851aff8..0000000000
--- a/synapse/storage/databases/main/schema/delta/42/current_state_delta.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE current_state_delta_stream (
- stream_id BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL,
- event_id TEXT, -- Is null if the key was removed
- prev_event_id TEXT -- Is null if the key was added
-);
-
-CREATE INDEX current_state_delta_stream_idx ON current_state_delta_stream(stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/42/device_list_last_id.sql b/synapse/storage/databases/main/schema/delta/42/device_list_last_id.sql
deleted file mode 100644
index 9ab8c14fa3..0000000000
--- a/synapse/storage/databases/main/schema/delta/42/device_list_last_id.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-
--- Table of last stream_id that we sent to destination for user_id. This is
--- used to fill out the `prev_id` fields of outbound device list updates.
-CREATE TABLE device_lists_outbound_last_success (
- destination TEXT NOT NULL,
- user_id TEXT NOT NULL,
- stream_id BIGINT NOT NULL
-);
-
-INSERT INTO device_lists_outbound_last_success
- SELECT destination, user_id, coalesce(max(stream_id), 0) as stream_id
- FROM device_lists_outbound_pokes
- WHERE sent = (1 = 1) -- sqlite doesn't have inbuilt boolean values
- GROUP BY destination, user_id;
-
-CREATE INDEX device_lists_outbound_last_success_idx ON device_lists_outbound_last_success(
- destination, user_id, stream_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/42/event_auth_state_only.sql b/synapse/storage/databases/main/schema/delta/42/event_auth_state_only.sql
deleted file mode 100644
index b8821ac759..0000000000
--- a/synapse/storage/databases/main/schema/delta/42/event_auth_state_only.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('event_auth_state_only', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/42/user_dir.py b/synapse/storage/databases/main/schema/delta/42/user_dir.py
deleted file mode 100644
index 506f326f4d..0000000000
--- a/synapse/storage/databases/main/schema/delta/42/user_dir.py
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright 2017 Vector Creations Ltd
-#
-# 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.
-
-import logging
-
-from synapse.storage.engines import PostgresEngine, Sqlite3Engine
-from synapse.storage.prepare_database import get_statements
-
-logger = logging.getLogger(__name__)
-
-
-BOTH_TABLES = """
-CREATE TABLE user_directory_stream_pos (
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_id BIGINT,
- CHECK (Lock='X')
-);
-
-INSERT INTO user_directory_stream_pos (stream_id) VALUES (null);
-
-CREATE TABLE user_directory (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL, -- A room_id that we know the user is joined to
- display_name TEXT,
- avatar_url TEXT
-);
-
-CREATE INDEX user_directory_room_idx ON user_directory(room_id);
-CREATE UNIQUE INDEX user_directory_user_idx ON user_directory(user_id);
-
-CREATE TABLE users_in_pubic_room (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL -- A room_id that we know is public
-);
-
-CREATE INDEX users_in_pubic_room_room_idx ON users_in_pubic_room(room_id);
-CREATE UNIQUE INDEX users_in_pubic_room_user_idx ON users_in_pubic_room(user_id);
-"""
-
-
-POSTGRES_TABLE = """
-CREATE TABLE user_directory_search (
- user_id TEXT NOT NULL,
- vector tsvector
-);
-
-CREATE INDEX user_directory_search_fts_idx ON user_directory_search USING gin(vector);
-CREATE UNIQUE INDEX user_directory_search_user_idx ON user_directory_search(user_id);
-"""
-
-
-SQLITE_TABLE = """
-CREATE VIRTUAL TABLE user_directory_search
- USING fts4 ( user_id, value );
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- for statement in get_statements(BOTH_TABLES.splitlines()):
- cur.execute(statement)
-
- if isinstance(database_engine, PostgresEngine):
- for statement in get_statements(POSTGRES_TABLE.splitlines()):
- cur.execute(statement)
- elif isinstance(database_engine, Sqlite3Engine):
- for statement in get_statements(SQLITE_TABLE.splitlines()):
- cur.execute(statement)
- else:
- raise Exception("Unrecognized database engine")
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/43/blocked_rooms.sql b/synapse/storage/databases/main/schema/delta/43/blocked_rooms.sql
deleted file mode 100644
index 0e3cd143ff..0000000000
--- a/synapse/storage/databases/main/schema/delta/43/blocked_rooms.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-CREATE TABLE blocked_rooms (
- room_id TEXT NOT NULL,
- user_id TEXT NOT NULL -- Admin who blocked the room
-);
-
-CREATE UNIQUE INDEX blocked_rooms_idx ON blocked_rooms(room_id);
diff --git a/synapse/storage/databases/main/schema/delta/43/quarantine_media.sql b/synapse/storage/databases/main/schema/delta/43/quarantine_media.sql
deleted file mode 100644
index 630907ec4f..0000000000
--- a/synapse/storage/databases/main/schema/delta/43/quarantine_media.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-ALTER TABLE local_media_repository ADD COLUMN quarantined_by TEXT;
-ALTER TABLE remote_media_cache ADD COLUMN quarantined_by TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/43/url_cache.sql b/synapse/storage/databases/main/schema/delta/43/url_cache.sql
deleted file mode 100644
index 45ebe020da..0000000000
--- a/synapse/storage/databases/main/schema/delta/43/url_cache.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-ALTER TABLE local_media_repository ADD COLUMN url_cache TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/43/user_share.sql b/synapse/storage/databases/main/schema/delta/43/user_share.sql
deleted file mode 100644
index ee7062abe4..0000000000
--- a/synapse/storage/databases/main/schema/delta/43/user_share.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
--- Table keeping track of who shares a room with who. We only keep track
--- of this for local users, so `user_id` is local users only (but we do keep track
--- of which remote users share a room)
-CREATE TABLE users_who_share_rooms (
- user_id TEXT NOT NULL,
- other_user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- share_private BOOLEAN NOT NULL -- is the shared room private? i.e. they share a private room
-);
-
-
-CREATE UNIQUE INDEX users_who_share_rooms_u_idx ON users_who_share_rooms(user_id, other_user_id);
-CREATE INDEX users_who_share_rooms_r_idx ON users_who_share_rooms(room_id);
-CREATE INDEX users_who_share_rooms_o_idx ON users_who_share_rooms(other_user_id);
-
-
--- Make sure that we populate the table initially
-UPDATE user_directory_stream_pos SET stream_id = NULL;
diff --git a/synapse/storage/databases/main/schema/delta/44/expire_url_cache.sql b/synapse/storage/databases/main/schema/delta/44/expire_url_cache.sql
deleted file mode 100644
index b12f9b2ebf..0000000000
--- a/synapse/storage/databases/main/schema/delta/44/expire_url_cache.sql
+++ /dev/null
@@ -1,41 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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 didn't work on SQLite 3.7 (because of lack of partial indexes), so was
--- removed and replaced with 46/local_media_repository_url_idx.sql.
---
--- CREATE INDEX local_media_repository_url_idx ON local_media_repository(created_ts) WHERE url_cache IS NOT NULL;
-
--- we need to change `expires` to `expires_ts` so that we can index on it. SQLite doesn't support
--- indices on expressions until 3.9.
-CREATE TABLE local_media_repository_url_cache_new(
- url TEXT,
- response_code INTEGER,
- etag TEXT,
- expires_ts BIGINT,
- og TEXT,
- media_id TEXT,
- download_ts BIGINT
-);
-
-INSERT INTO local_media_repository_url_cache_new
- SELECT url, response_code, etag, expires + download_ts, og, media_id, download_ts FROM local_media_repository_url_cache;
-
-DROP TABLE local_media_repository_url_cache;
-ALTER TABLE local_media_repository_url_cache_new RENAME TO local_media_repository_url_cache;
-
-CREATE INDEX local_media_repository_url_cache_expires_idx ON local_media_repository_url_cache(expires_ts);
-CREATE INDEX local_media_repository_url_cache_by_url_download_ts ON local_media_repository_url_cache(url, download_ts);
-CREATE INDEX local_media_repository_url_cache_media_idx ON local_media_repository_url_cache(media_id);
diff --git a/synapse/storage/databases/main/schema/delta/45/group_server.sql b/synapse/storage/databases/main/schema/delta/45/group_server.sql
deleted file mode 100644
index b2333848a0..0000000000
--- a/synapse/storage/databases/main/schema/delta/45/group_server.sql
+++ /dev/null
@@ -1,167 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd
- *
- * 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.
- */
-
-CREATE TABLE groups (
- group_id TEXT NOT NULL,
- name TEXT, -- the display name of the room
- avatar_url TEXT,
- short_description TEXT,
- long_description TEXT
-);
-
-CREATE UNIQUE INDEX groups_idx ON groups(group_id);
-
-
--- list of users the group server thinks are joined
-CREATE TABLE group_users (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- is_admin BOOLEAN NOT NULL,
- is_public BOOLEAN NOT NULL -- whether the users membership can be seen by everyone
-);
-
-
-CREATE INDEX groups_users_g_idx ON group_users(group_id, user_id);
-CREATE INDEX groups_users_u_idx ON group_users(user_id);
-
--- list of users the group server thinks are invited
-CREATE TABLE group_invites (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL
-);
-
-CREATE INDEX groups_invites_g_idx ON group_invites(group_id, user_id);
-CREATE INDEX groups_invites_u_idx ON group_invites(user_id);
-
-
-CREATE TABLE group_rooms (
- group_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- is_public BOOLEAN NOT NULL -- whether the room can be seen by everyone
-);
-
-CREATE UNIQUE INDEX groups_rooms_g_idx ON group_rooms(group_id, room_id);
-CREATE INDEX groups_rooms_r_idx ON group_rooms(room_id);
-
-
--- Rooms to include in the summary
-CREATE TABLE group_summary_rooms (
- group_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- category_id TEXT NOT NULL,
- room_order BIGINT NOT NULL,
- is_public BOOLEAN NOT NULL, -- whether the room should be show to everyone
- UNIQUE (group_id, category_id, room_id, room_order),
- CHECK (room_order > 0)
-);
-
-CREATE UNIQUE INDEX group_summary_rooms_g_idx ON group_summary_rooms(group_id, room_id, category_id);
-
-
--- Categories to include in the summary
-CREATE TABLE group_summary_room_categories (
- group_id TEXT NOT NULL,
- category_id TEXT NOT NULL,
- cat_order BIGINT NOT NULL,
- UNIQUE (group_id, category_id, cat_order),
- CHECK (cat_order > 0)
-);
-
--- The categories in the group
-CREATE TABLE group_room_categories (
- group_id TEXT NOT NULL,
- category_id TEXT NOT NULL,
- profile TEXT NOT NULL,
- is_public BOOLEAN NOT NULL, -- whether the category should be show to everyone
- UNIQUE (group_id, category_id)
-);
-
--- The users to include in the group summary
-CREATE TABLE group_summary_users (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- role_id TEXT NOT NULL,
- user_order BIGINT NOT NULL,
- is_public BOOLEAN NOT NULL -- whether the user should be show to everyone
-);
-
-CREATE INDEX group_summary_users_g_idx ON group_summary_users(group_id);
-
--- The roles to include in the group summary
-CREATE TABLE group_summary_roles (
- group_id TEXT NOT NULL,
- role_id TEXT NOT NULL,
- role_order BIGINT NOT NULL,
- UNIQUE (group_id, role_id, role_order),
- CHECK (role_order > 0)
-);
-
-
--- The roles in a groups
-CREATE TABLE group_roles (
- group_id TEXT NOT NULL,
- role_id TEXT NOT NULL,
- profile TEXT NOT NULL,
- is_public BOOLEAN NOT NULL, -- whether the role should be show to everyone
- UNIQUE (group_id, role_id)
-);
-
-
--- List of attestations we've given out and need to renew
-CREATE TABLE group_attestations_renewals (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- valid_until_ms BIGINT NOT NULL
-);
-
-CREATE INDEX group_attestations_renewals_g_idx ON group_attestations_renewals(group_id, user_id);
-CREATE INDEX group_attestations_renewals_u_idx ON group_attestations_renewals(user_id);
-CREATE INDEX group_attestations_renewals_v_idx ON group_attestations_renewals(valid_until_ms);
-
-
--- List of attestations we've received from remotes and are interested in.
-CREATE TABLE group_attestations_remote (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- valid_until_ms BIGINT NOT NULL,
- attestation_json TEXT NOT NULL
-);
-
-CREATE INDEX group_attestations_remote_g_idx ON group_attestations_remote(group_id, user_id);
-CREATE INDEX group_attestations_remote_u_idx ON group_attestations_remote(user_id);
-CREATE INDEX group_attestations_remote_v_idx ON group_attestations_remote(valid_until_ms);
-
-
--- The group membership for the HS's users
-CREATE TABLE local_group_membership (
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- is_admin BOOLEAN NOT NULL,
- membership TEXT NOT NULL,
- is_publicised BOOLEAN NOT NULL, -- if the user is publicising their membership
- content TEXT NOT NULL
-);
-
-CREATE INDEX local_group_membership_u_idx ON local_group_membership(user_id, group_id);
-CREATE INDEX local_group_membership_g_idx ON local_group_membership(group_id);
-
-
-CREATE TABLE local_group_updates (
- stream_id BIGINT NOT NULL,
- group_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- type TEXT NOT NULL,
- content TEXT NOT NULL
-);
diff --git a/synapse/storage/databases/main/schema/delta/45/profile_cache.sql b/synapse/storage/databases/main/schema/delta/45/profile_cache.sql
deleted file mode 100644
index e5ddc84df0..0000000000
--- a/synapse/storage/databases/main/schema/delta/45/profile_cache.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
-
--- A subset of remote users whose profiles we have cached.
--- Whether a user is in this table or not is defined by the storage function
--- `is_subscribed_remote_profile_for_user`
-CREATE TABLE remote_profile_cache (
- user_id TEXT NOT NULL,
- displayname TEXT,
- avatar_url TEXT,
- last_check BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX remote_profile_cache_user_id ON remote_profile_cache(user_id);
-CREATE INDEX remote_profile_cache_time ON remote_profile_cache(last_check);
diff --git a/synapse/storage/databases/main/schema/delta/46/drop_refresh_tokens.sql b/synapse/storage/databases/main/schema/delta/46/drop_refresh_tokens.sql
deleted file mode 100644
index 68c48a89a9..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/drop_refresh_tokens.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
-/* we no longer use (or create) the refresh_tokens table */
-DROP TABLE IF EXISTS refresh_tokens;
diff --git a/synapse/storage/databases/main/schema/delta/46/drop_unique_deleted_pushers.sql b/synapse/storage/databases/main/schema/delta/46/drop_unique_deleted_pushers.sql
deleted file mode 100644
index bb307889c1..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/drop_unique_deleted_pushers.sql
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
--- drop the unique constraint on deleted_pushers so that we can just insert
--- into it rather than upserting.
-
-CREATE TABLE deleted_pushers2 (
- stream_id BIGINT NOT NULL,
- app_id TEXT NOT NULL,
- pushkey TEXT NOT NULL,
- user_id TEXT NOT NULL
-);
-
-INSERT INTO deleted_pushers2 (stream_id, app_id, pushkey, user_id)
- SELECT stream_id, app_id, pushkey, user_id from deleted_pushers;
-
-DROP TABLE deleted_pushers;
-ALTER TABLE deleted_pushers2 RENAME TO deleted_pushers;
-
--- create the index after doing the inserts because that's more efficient.
--- it also means we can give it the same name as the old one without renaming.
-CREATE INDEX deleted_pushers_stream_id ON deleted_pushers (stream_id);
-
diff --git a/synapse/storage/databases/main/schema/delta/46/group_server.sql b/synapse/storage/databases/main/schema/delta/46/group_server.sql
deleted file mode 100644
index 097679bc9a..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/group_server.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
-CREATE TABLE groups_new (
- group_id TEXT NOT NULL,
- name TEXT, -- the display name of the room
- avatar_url TEXT,
- short_description TEXT,
- long_description TEXT,
- is_public BOOL NOT NULL -- whether non-members can access group APIs
-);
-
--- NB: awful hack to get the default to be true on postgres and 1 on sqlite
-INSERT INTO groups_new
- SELECT group_id, name, avatar_url, short_description, long_description, (1=1) FROM groups;
-
-DROP TABLE groups;
-ALTER TABLE groups_new RENAME TO groups;
-
-CREATE UNIQUE INDEX groups_idx ON groups(group_id);
diff --git a/synapse/storage/databases/main/schema/delta/46/local_media_repository_url_idx.sql b/synapse/storage/databases/main/schema/delta/46/local_media_repository_url_idx.sql
deleted file mode 100644
index bbfc7f5d1a..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/local_media_repository_url_idx.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
--- register a background update which will recreate the
--- local_media_repository_url_idx index.
---
--- We do this as a bg update not because it is a particularly onerous
--- operation, but because we'd like it to be a partial index if possible, and
--- the background_index_update code will understand whether we are on
--- postgres or sqlite and behave accordingly.
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('local_media_repository_url_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/46/user_dir_null_room_ids.sql b/synapse/storage/databases/main/schema/delta/46/user_dir_null_room_ids.sql
deleted file mode 100644
index cb0d5a2576..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/user_dir_null_room_ids.sql
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
--- change the user_directory table to also cover global local user profiles
--- rather than just profiles within specific rooms.
-
-CREATE TABLE user_directory2 (
- user_id TEXT NOT NULL,
- room_id TEXT,
- display_name TEXT,
- avatar_url TEXT
-);
-
-INSERT INTO user_directory2(user_id, room_id, display_name, avatar_url)
- SELECT user_id, room_id, display_name, avatar_url from user_directory;
-
-DROP TABLE user_directory;
-ALTER TABLE user_directory2 RENAME TO user_directory;
-
--- create indexes after doing the inserts because that's more efficient.
--- it also means we can give it the same name as the old one without renaming.
-CREATE INDEX user_directory_room_idx ON user_directory(room_id);
-CREATE UNIQUE INDEX user_directory_user_idx ON user_directory(user_id);
diff --git a/synapse/storage/databases/main/schema/delta/46/user_dir_typos.sql b/synapse/storage/databases/main/schema/delta/46/user_dir_typos.sql
deleted file mode 100644
index d9505f8da1..0000000000
--- a/synapse/storage/databases/main/schema/delta/46/user_dir_typos.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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 just embarassing :|
-ALTER TABLE users_in_pubic_room RENAME TO users_in_public_rooms;
-
--- this is only 300K rows on matrix.org and takes ~3s to generate the index,
--- so is hopefully not going to block anyone else for that long...
-CREATE INDEX users_in_public_rooms_room_idx ON users_in_public_rooms(room_id);
-CREATE UNIQUE INDEX users_in_public_rooms_user_idx ON users_in_public_rooms(user_id);
-DROP INDEX users_in_pubic_room_room_idx;
-DROP INDEX users_in_pubic_room_user_idx;
diff --git a/synapse/storage/databases/main/schema/delta/47/last_access_media.sql b/synapse/storage/databases/main/schema/delta/47/last_access_media.sql
deleted file mode 100644
index f505fb22b5..0000000000
--- a/synapse/storage/databases/main/schema/delta/47/last_access_media.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-ALTER TABLE local_media_repository ADD COLUMN last_access_ts BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/47/postgres_fts_gin.sql b/synapse/storage/databases/main/schema/delta/47/postgres_fts_gin.sql
deleted file mode 100644
index 31d7a817eb..0000000000
--- a/synapse/storage/databases/main/schema/delta/47/postgres_fts_gin.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('event_search_postgres_gin', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/47/push_actions_staging.sql b/synapse/storage/databases/main/schema/delta/47/push_actions_staging.sql
deleted file mode 100644
index edccf4a96f..0000000000
--- a/synapse/storage/databases/main/schema/delta/47/push_actions_staging.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
--- Temporary staging area for push actions that have been calculated for an
--- event, but the event hasn't yet been persisted.
--- When the event is persisted the rows are moved over to the
--- event_push_actions table.
-CREATE TABLE event_push_actions_staging (
- event_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- actions TEXT NOT NULL,
- notif SMALLINT NOT NULL,
- highlight SMALLINT NOT NULL
-);
-
-CREATE INDEX event_push_actions_staging_id ON event_push_actions_staging(event_id);
diff --git a/synapse/storage/databases/main/schema/delta/48/add_user_consent.sql b/synapse/storage/databases/main/schema/delta/48/add_user_consent.sql
deleted file mode 100644
index 5237491506..0000000000
--- a/synapse/storage/databases/main/schema/delta/48/add_user_consent.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-/* record the version of the privacy policy the user has consented to
- */
-ALTER TABLE users ADD COLUMN consent_version TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/48/add_user_ips_last_seen_index.sql b/synapse/storage/databases/main/schema/delta/48/add_user_ips_last_seen_index.sql
deleted file mode 100644
index 9248b0b24a..0000000000
--- a/synapse/storage/databases/main/schema/delta/48/add_user_ips_last_seen_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('user_ips_last_seen_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/48/deactivated_users.sql b/synapse/storage/databases/main/schema/delta/48/deactivated_users.sql
deleted file mode 100644
index e9013a6969..0000000000
--- a/synapse/storage/databases/main/schema/delta/48/deactivated_users.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-/*
- * Store any accounts that have been requested to be deactivated.
- * We part the account from all the rooms its in when its
- * deactivated. This can take some time and synapse may be restarted
- * before it completes, so store the user IDs here until the process
- * is complete.
- */
-CREATE TABLE users_pending_deactivation (
- user_id TEXT NOT NULL
-);
diff --git a/synapse/storage/databases/main/schema/delta/48/group_unique_indexes.py b/synapse/storage/databases/main/schema/delta/48/group_unique_indexes.py
deleted file mode 100644
index 49f5f2c003..0000000000
--- a/synapse/storage/databases/main/schema/delta/48/group_unique_indexes.py
+++ /dev/null
@@ -1,63 +0,0 @@
-# Copyright 2018 New Vector Ltd
-#
-# 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.
-
-from synapse.storage.engines import PostgresEngine
-from synapse.storage.prepare_database import get_statements
-
-FIX_INDEXES = """
--- rebuild indexes as uniques
-DROP INDEX groups_invites_g_idx;
-CREATE UNIQUE INDEX group_invites_g_idx ON group_invites(group_id, user_id);
-DROP INDEX groups_users_g_idx;
-CREATE UNIQUE INDEX group_users_g_idx ON group_users(group_id, user_id);
-
--- rename other indexes to actually match their table names..
-DROP INDEX groups_users_u_idx;
-CREATE INDEX group_users_u_idx ON group_users(user_id);
-DROP INDEX groups_invites_u_idx;
-CREATE INDEX group_invites_u_idx ON group_invites(user_id);
-DROP INDEX groups_rooms_g_idx;
-CREATE UNIQUE INDEX group_rooms_g_idx ON group_rooms(group_id, room_id);
-DROP INDEX groups_rooms_r_idx;
-CREATE INDEX group_rooms_r_idx ON group_rooms(room_id);
-"""
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- rowid = "ctid" if isinstance(database_engine, PostgresEngine) else "rowid"
-
- # remove duplicates from group_users & group_invites tables
- cur.execute(
- """
- DELETE FROM group_users WHERE %s NOT IN (
- SELECT min(%s) FROM group_users GROUP BY group_id, user_id
- );
- """
- % (rowid, rowid)
- )
- cur.execute(
- """
- DELETE FROM group_invites WHERE %s NOT IN (
- SELECT min(%s) FROM group_invites GROUP BY group_id, user_id
- );
- """
- % (rowid, rowid)
- )
-
- for statement in get_statements(FIX_INDEXES.splitlines()):
- cur.execute(statement)
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/48/groups_joinable.sql b/synapse/storage/databases/main/schema/delta/48/groups_joinable.sql
deleted file mode 100644
index ce26eaf0c9..0000000000
--- a/synapse/storage/databases/main/schema/delta/48/groups_joinable.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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 isn't a real ENUM because sqlite doesn't support it
- * and we use a default of NULL for inserted rows and interpret
- * NULL at the python store level as necessary so that existing
- * rows are given the correct default policy.
- */
-ALTER TABLE groups ADD COLUMN join_policy TEXT NOT NULL DEFAULT 'invite';
diff --git a/synapse/storage/databases/main/schema/delta/49/add_user_consent_server_notice_sent.sql b/synapse/storage/databases/main/schema/delta/49/add_user_consent_server_notice_sent.sql
deleted file mode 100644
index 14dcf18d73..0000000000
--- a/synapse/storage/databases/main/schema/delta/49/add_user_consent_server_notice_sent.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-/* record whether we have sent a server notice about consenting to the
- * privacy policy. Specifically records the version of the policy we sent
- * a message about.
- */
-ALTER TABLE users ADD COLUMN consent_server_notice_sent TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/49/add_user_daily_visits.sql b/synapse/storage/databases/main/schema/delta/49/add_user_daily_visits.sql
deleted file mode 100644
index 3dd478196f..0000000000
--- a/synapse/storage/databases/main/schema/delta/49/add_user_daily_visits.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-
-CREATE TABLE user_daily_visits ( user_id TEXT NOT NULL,
- device_id TEXT,
- timestamp BIGINT NOT NULL );
-CREATE INDEX user_daily_visits_uts_idx ON user_daily_visits(user_id, timestamp);
-CREATE INDEX user_daily_visits_ts_idx ON user_daily_visits(timestamp);
diff --git a/synapse/storage/databases/main/schema/delta/49/add_user_ips_last_seen_only_index.sql b/synapse/storage/databases/main/schema/delta/49/add_user_ips_last_seen_only_index.sql
deleted file mode 100644
index 3a4ed59b5b..0000000000
--- a/synapse/storage/databases/main/schema/delta/49/add_user_ips_last_seen_only_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('user_ips_last_seen_only_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/50/add_creation_ts_users_index.sql b/synapse/storage/databases/main/schema/delta/50/add_creation_ts_users_index.sql
deleted file mode 100644
index c93ae47532..0000000000
--- a/synapse/storage/databases/main/schema/delta/50/add_creation_ts_users_index.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('users_creation_ts', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/50/erasure_store.sql b/synapse/storage/databases/main/schema/delta/50/erasure_store.sql
deleted file mode 100644
index 5d8641a9ab..0000000000
--- a/synapse/storage/databases/main/schema/delta/50/erasure_store.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
--- a table of users who have requested that their details be erased
-CREATE TABLE erased_users (
- user_id TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX erased_users_user ON erased_users(user_id);
diff --git a/synapse/storage/databases/main/schema/delta/50/make_event_content_nullable.py b/synapse/storage/databases/main/schema/delta/50/make_event_content_nullable.py
deleted file mode 100644
index acd6ad1e1f..0000000000
--- a/synapse/storage/databases/main/schema/delta/50/make_event_content_nullable.py
+++ /dev/null
@@ -1,95 +0,0 @@
-# Copyright 2018 New Vector Ltd
-#
-# 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.
-
-"""
-We want to stop populating 'event.content', so we need to make it nullable.
-
-If this has to be rolled back, then the following should populate the missing data:
-
-Postgres:
-
- UPDATE events SET content=(ej.json::json)->'content' FROM event_json ej
- WHERE ej.event_id = events.event_id AND
- stream_ordering < (
- SELECT stream_ordering FROM events WHERE content IS NOT NULL
- ORDER BY stream_ordering LIMIT 1
- );
-
- UPDATE events SET content=(ej.json::json)->'content' FROM event_json ej
- WHERE ej.event_id = events.event_id AND
- stream_ordering > (
- SELECT stream_ordering FROM events WHERE content IS NOT NULL
- ORDER BY stream_ordering DESC LIMIT 1
- );
-
-SQLite:
-
- UPDATE events SET content=(
- SELECT json_extract(json,'$.content') FROM event_json ej
- WHERE ej.event_id = events.event_id
- )
- WHERE
- stream_ordering < (
- SELECT stream_ordering FROM events WHERE content IS NOT NULL
- ORDER BY stream_ordering LIMIT 1
- )
- OR stream_ordering > (
- SELECT stream_ordering FROM events WHERE content IS NOT NULL
- ORDER BY stream_ordering DESC LIMIT 1
- );
-
-"""
-
-import logging
-
-from synapse.storage.engines import PostgresEngine
-
-logger = logging.getLogger(__name__)
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- pass
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- if isinstance(database_engine, PostgresEngine):
- cur.execute(
- """
- ALTER TABLE events ALTER COLUMN content DROP NOT NULL;
- """
- )
- return
-
- # sqlite is an arse about this. ref: https://www.sqlite.org/lang_altertable.html
-
- cur.execute(
- "SELECT sql FROM sqlite_master WHERE tbl_name='events' AND type='table'"
- )
- (oldsql,) = cur.fetchone()
-
- sql = oldsql.replace("content TEXT NOT NULL", "content TEXT")
- if sql == oldsql:
- raise Exception("Couldn't find null constraint to drop in %s" % oldsql)
-
- logger.info("Replacing definition of 'events' with: %s", sql)
-
- cur.execute("PRAGMA schema_version")
- (oldver,) = cur.fetchone()
- cur.execute("PRAGMA writable_schema=ON")
- cur.execute(
- "UPDATE sqlite_master SET sql=? WHERE tbl_name='events' AND type='table'",
- (sql,),
- )
- cur.execute("PRAGMA schema_version=%i" % (oldver + 1,))
- cur.execute("PRAGMA writable_schema=OFF")
diff --git a/synapse/storage/databases/main/schema/delta/51/e2e_room_keys.sql b/synapse/storage/databases/main/schema/delta/51/e2e_room_keys.sql
deleted file mode 100644
index c0e66a697d..0000000000
--- a/synapse/storage/databases/main/schema/delta/51/e2e_room_keys.sql
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2017 New Vector Ltd
- *
- * 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.
- */
-
--- users' optionally backed up encrypted e2e sessions
-CREATE TABLE e2e_room_keys (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- session_id TEXT NOT NULL,
- version TEXT NOT NULL,
- first_message_index INT,
- forwarded_count INT,
- is_verified BOOLEAN,
- session_data TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX e2e_room_keys_idx ON e2e_room_keys(user_id, room_id, session_id);
-
--- the metadata for each generation of encrypted e2e session backups
-CREATE TABLE e2e_room_keys_versions (
- user_id TEXT NOT NULL,
- version TEXT NOT NULL,
- algorithm TEXT NOT NULL,
- auth_data TEXT NOT NULL,
- deleted SMALLINT DEFAULT 0 NOT NULL
-);
-
-CREATE UNIQUE INDEX e2e_room_keys_versions_idx ON e2e_room_keys_versions(user_id, version);
diff --git a/synapse/storage/databases/main/schema/delta/51/monthly_active_users.sql b/synapse/storage/databases/main/schema/delta/51/monthly_active_users.sql
deleted file mode 100644
index c9d537d5a3..0000000000
--- a/synapse/storage/databases/main/schema/delta/51/monthly_active_users.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
--- a table of monthly active users, for use where blocking based on mau limits
-CREATE TABLE monthly_active_users (
- user_id TEXT NOT NULL,
- -- Last time we saw the user. Not guaranteed to be accurate due to rate limiting
- -- on updates, Granularity of updates governed by
- -- synapse.storage.monthly_active_users.LAST_SEEN_GRANULARITY
- -- Measured in ms since epoch.
- timestamp BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX monthly_active_users_users ON monthly_active_users(user_id);
-CREATE INDEX monthly_active_users_time_stamp ON monthly_active_users(timestamp);
diff --git a/synapse/storage/databases/main/schema/delta/52/add_event_to_state_group_index.sql b/synapse/storage/databases/main/schema/delta/52/add_event_to_state_group_index.sql
deleted file mode 100644
index 91e03d13e1..0000000000
--- a/synapse/storage/databases/main/schema/delta/52/add_event_to_state_group_index.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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 needed to efficiently check for unreferenced state groups during
--- purge. Added events_to_state_group(state_group) index
-INSERT into background_updates (update_name, progress_json)
- VALUES ('event_to_state_groups_sg_index', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/52/device_list_streams_unique_idx.sql b/synapse/storage/databases/main/schema/delta/52/device_list_streams_unique_idx.sql
deleted file mode 100644
index bfa49e6f92..0000000000
--- a/synapse/storage/databases/main/schema/delta/52/device_list_streams_unique_idx.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
--- register a background update which will create a unique index on
--- device_lists_remote_cache
-INSERT into background_updates (update_name, progress_json)
- VALUES ('device_lists_remote_cache_unique_idx', '{}');
-
--- and one on device_lists_remote_extremeties
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES (
- 'device_lists_remote_extremeties_unique_idx', '{}',
-
- -- doesn't really depend on this, but we need to make sure both happen
- -- before we drop the old indexes.
- 'device_lists_remote_cache_unique_idx'
- );
-
--- once they complete, we can drop the old indexes.
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES (
- 'drop_device_list_streams_non_unique_indexes', '{}',
- 'device_lists_remote_extremeties_unique_idx'
- );
diff --git a/synapse/storage/databases/main/schema/delta/52/e2e_room_keys.sql b/synapse/storage/databases/main/schema/delta/52/e2e_room_keys.sql
deleted file mode 100644
index db687cccae..0000000000
--- a/synapse/storage/databases/main/schema/delta/52/e2e_room_keys.sql
+++ /dev/null
@@ -1,53 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-/* Change version column to an integer so we can do MAX() sensibly
- */
-CREATE TABLE e2e_room_keys_versions_new (
- user_id TEXT NOT NULL,
- version BIGINT NOT NULL,
- algorithm TEXT NOT NULL,
- auth_data TEXT NOT NULL,
- deleted SMALLINT DEFAULT 0 NOT NULL
-);
-
-INSERT INTO e2e_room_keys_versions_new
- SELECT user_id, CAST(version as BIGINT), algorithm, auth_data, deleted FROM e2e_room_keys_versions;
-
-DROP TABLE e2e_room_keys_versions;
-ALTER TABLE e2e_room_keys_versions_new RENAME TO e2e_room_keys_versions;
-
-CREATE UNIQUE INDEX e2e_room_keys_versions_idx ON e2e_room_keys_versions(user_id, version);
-
-/* Change e2e_rooms_keys to match
- */
-CREATE TABLE e2e_room_keys_new (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- session_id TEXT NOT NULL,
- version BIGINT NOT NULL,
- first_message_index INT,
- forwarded_count INT,
- is_verified BOOLEAN,
- session_data TEXT NOT NULL
-);
-
-INSERT INTO e2e_room_keys_new
- SELECT user_id, room_id, session_id, CAST(version as BIGINT), first_message_index, forwarded_count, is_verified, session_data FROM e2e_room_keys;
-
-DROP TABLE e2e_room_keys;
-ALTER TABLE e2e_room_keys_new RENAME TO e2e_room_keys;
-
-CREATE UNIQUE INDEX e2e_room_keys_idx ON e2e_room_keys(user_id, room_id, session_id);
diff --git a/synapse/storage/databases/main/schema/delta/53/add_user_type_to_users.sql b/synapse/storage/databases/main/schema/delta/53/add_user_type_to_users.sql
deleted file mode 100644
index 88ec2f83e5..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/add_user_type_to_users.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-/* The type of the user: NULL for a regular user, or one of the constants in
- * synapse.api.constants.UserTypes
- */
-ALTER TABLE users ADD COLUMN user_type TEXT DEFAULT NULL;
diff --git a/synapse/storage/databases/main/schema/delta/53/drop_sent_transactions.sql b/synapse/storage/databases/main/schema/delta/53/drop_sent_transactions.sql
deleted file mode 100644
index e372f5a44a..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/drop_sent_transactions.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-DROP TABLE IF EXISTS sent_transactions;
diff --git a/synapse/storage/databases/main/schema/delta/53/event_format_version.sql b/synapse/storage/databases/main/schema/delta/53/event_format_version.sql
deleted file mode 100644
index 1d977c2834..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/event_format_version.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
-ALTER TABLE event_json ADD COLUMN format_version INTEGER;
diff --git a/synapse/storage/databases/main/schema/delta/53/user_dir_populate.sql b/synapse/storage/databases/main/schema/delta/53/user_dir_populate.sql
deleted file mode 100644
index ffcc896b58..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/user_dir_populate.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- Set up staging tables
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('populate_user_directory_createtables', '{}');
-
--- Run through each room and update the user directory according to who is in it
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_user_directory_process_rooms', '{}', 'populate_user_directory_createtables');
-
--- Insert all users, if search_all_users is on
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_user_directory_process_users', '{}', 'populate_user_directory_process_rooms');
-
--- Clean up staging tables
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_user_directory_cleanup', '{}', 'populate_user_directory_process_users');
diff --git a/synapse/storage/databases/main/schema/delta/53/user_ips_index.sql b/synapse/storage/databases/main/schema/delta/53/user_ips_index.sql
deleted file mode 100644
index b812c5794f..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/user_ips_index.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
- -- analyze user_ips, to help ensure the correct indices are used
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('user_ips_analyze', '{}');
-
--- delete duplicates
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('user_ips_remove_dupes', '{}', 'user_ips_analyze');
-
--- add a new unique index to user_ips table
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('user_ips_device_unique_index', '{}', 'user_ips_remove_dupes');
-
--- drop the old original index
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('user_ips_drop_nonunique_index', '{}', 'user_ips_device_unique_index');
diff --git a/synapse/storage/databases/main/schema/delta/53/user_share.sql b/synapse/storage/databases/main/schema/delta/53/user_share.sql
deleted file mode 100644
index 5831b1a6f8..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/user_share.sql
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2017 Vector Creations Ltd, 2019 New Vector Ltd
- *
- * 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.
- */
-
--- Old disused version of the tables below.
-DROP TABLE IF EXISTS users_who_share_rooms;
-
--- Tables keeping track of what users share rooms. This is a map of local users
--- to local or remote users, per room. Remote users cannot be in the user_id
--- column, only the other_user_id column. There are two tables, one for public
--- rooms and those for private rooms.
-CREATE TABLE IF NOT EXISTS users_who_share_public_rooms (
- user_id TEXT NOT NULL,
- other_user_id TEXT NOT NULL,
- room_id TEXT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS users_who_share_private_rooms (
- user_id TEXT NOT NULL,
- other_user_id TEXT NOT NULL,
- room_id TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX users_who_share_public_rooms_u_idx ON users_who_share_public_rooms(user_id, other_user_id, room_id);
-CREATE INDEX users_who_share_public_rooms_r_idx ON users_who_share_public_rooms(room_id);
-CREATE INDEX users_who_share_public_rooms_o_idx ON users_who_share_public_rooms(other_user_id);
-
-CREATE UNIQUE INDEX users_who_share_private_rooms_u_idx ON users_who_share_private_rooms(user_id, other_user_id, room_id);
-CREATE INDEX users_who_share_private_rooms_r_idx ON users_who_share_private_rooms(room_id);
-CREATE INDEX users_who_share_private_rooms_o_idx ON users_who_share_private_rooms(other_user_id);
-
--- Make sure that we populate the tables initially by resetting the stream ID
-UPDATE user_directory_stream_pos SET stream_id = NULL;
diff --git a/synapse/storage/databases/main/schema/delta/53/user_threepid_id.sql b/synapse/storage/databases/main/schema/delta/53/user_threepid_id.sql
deleted file mode 100644
index 80c2c573b6..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/user_threepid_id.sql
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- Tracks which identity server a user bound their threepid via.
-CREATE TABLE user_threepid_id_server (
- user_id TEXT NOT NULL,
- medium TEXT NOT NULL,
- address TEXT NOT NULL,
- id_server TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX user_threepid_id_server_idx ON user_threepid_id_server(
- user_id, medium, address, id_server
-);
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('user_threepids_grandfather', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/53/users_in_public_rooms.sql b/synapse/storage/databases/main/schema/delta/53/users_in_public_rooms.sql
deleted file mode 100644
index f7827ca6d2..0000000000
--- a/synapse/storage/databases/main/schema/delta/53/users_in_public_rooms.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- We don't need the old version of this table.
-DROP TABLE IF EXISTS users_in_public_rooms;
-
--- Old version of users_in_public_rooms
-DROP TABLE IF EXISTS users_who_share_public_rooms;
-
--- Track what users are in public rooms.
-CREATE TABLE IF NOT EXISTS users_in_public_rooms (
- user_id TEXT NOT NULL,
- room_id TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX users_in_public_rooms_u_idx ON users_in_public_rooms(user_id, room_id);
diff --git a/synapse/storage/databases/main/schema/delta/54/account_validity_with_renewal.sql b/synapse/storage/databases/main/schema/delta/54/account_validity_with_renewal.sql
deleted file mode 100644
index 0adb2ad55e..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/account_validity_with_renewal.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- We previously changed the schema for this table without renaming the file, which means
--- that some databases might still be using the old schema. This ensures Synapse uses the
--- right schema for the table.
-DROP TABLE IF EXISTS account_validity;
-
--- Track what users are in public rooms.
-CREATE TABLE IF NOT EXISTS account_validity (
- user_id TEXT PRIMARY KEY,
- expiration_ts_ms BIGINT NOT NULL,
- email_sent BOOLEAN NOT NULL,
- renewal_token TEXT
-);
-
-CREATE INDEX account_validity_email_sent_idx ON account_validity(email_sent, expiration_ts_ms)
-CREATE UNIQUE INDEX account_validity_renewal_string_idx ON account_validity(renewal_token)
diff --git a/synapse/storage/databases/main/schema/delta/54/add_validity_to_server_keys.sql b/synapse/storage/databases/main/schema/delta/54/add_validity_to_server_keys.sql
deleted file mode 100644
index c01aa9d2d9..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/add_validity_to_server_keys.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
-/* When we can use this key until, before we have to refresh it. */
-ALTER TABLE server_signature_keys ADD COLUMN ts_valid_until_ms BIGINT;
-
-UPDATE server_signature_keys SET ts_valid_until_ms = (
- SELECT MAX(ts_valid_until_ms) FROM server_keys_json skj WHERE
- skj.server_name = server_signature_keys.server_name AND
- skj.key_id = server_signature_keys.key_id
-);
diff --git a/synapse/storage/databases/main/schema/delta/54/delete_forward_extremities.sql b/synapse/storage/databases/main/schema/delta/54/delete_forward_extremities.sql
deleted file mode 100644
index b062ec840c..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/delete_forward_extremities.sql
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- Start a background job to cleanup extremities that were incorrectly added
--- by bug #5269.
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('delete_soft_failed_extremities', '{}');
-
-DROP TABLE IF EXISTS _extremities_to_check; -- To make this delta schema file idempotent.
-CREATE TABLE _extremities_to_check AS SELECT event_id FROM event_forward_extremities;
-CREATE INDEX _extremities_to_check_id ON _extremities_to_check(event_id);
diff --git a/synapse/storage/databases/main/schema/delta/54/drop_legacy_tables.sql b/synapse/storage/databases/main/schema/delta/54/drop_legacy_tables.sql
deleted file mode 100644
index dbbe682697..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/drop_legacy_tables.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- we need to do this first due to foreign constraints
-DROP TABLE IF EXISTS application_services_regex;
-
-DROP TABLE IF EXISTS application_services;
-DROP TABLE IF EXISTS transaction_id_to_pdu;
-DROP TABLE IF EXISTS stats_reporting;
-DROP TABLE IF EXISTS current_state_resets;
-DROP TABLE IF EXISTS event_content_hashes;
-DROP TABLE IF EXISTS event_destinations;
-DROP TABLE IF EXISTS event_edge_hashes;
-DROP TABLE IF EXISTS event_signatures;
-DROP TABLE IF EXISTS feedback;
-DROP TABLE IF EXISTS room_hosts;
-DROP TABLE IF EXISTS server_tls_certificates;
-DROP TABLE IF EXISTS state_forward_extremities;
diff --git a/synapse/storage/databases/main/schema/delta/54/drop_presence_list.sql b/synapse/storage/databases/main/schema/delta/54/drop_presence_list.sql
deleted file mode 100644
index e6ee70c623..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/drop_presence_list.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
-DROP TABLE IF EXISTS presence_list;
diff --git a/synapse/storage/databases/main/schema/delta/54/relations.sql b/synapse/storage/databases/main/schema/delta/54/relations.sql
deleted file mode 100644
index 134862b870..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/relations.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- Tracks related events, like reactions, replies, edits, etc. Note that things
--- in this table are not necessarily "valid", e.g. it may contain edits from
--- people who don't have power to edit other peoples events.
-CREATE TABLE IF NOT EXISTS event_relations (
- event_id TEXT NOT NULL,
- relates_to_id TEXT NOT NULL,
- relation_type TEXT NOT NULL,
- aggregation_key TEXT
-);
-
-CREATE UNIQUE INDEX event_relations_id ON event_relations(event_id);
-CREATE INDEX event_relations_relates ON event_relations(relates_to_id, relation_type, aggregation_key);
diff --git a/synapse/storage/databases/main/schema/delta/54/stats.sql b/synapse/storage/databases/main/schema/delta/54/stats.sql
deleted file mode 100644
index 652e58308e..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/stats.sql
+++ /dev/null
@@ -1,80 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- *
- * 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.
- */
-
-CREATE TABLE stats_stream_pos (
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_id BIGINT,
- CHECK (Lock='X')
-);
-
-INSERT INTO stats_stream_pos (stream_id) VALUES (null);
-
-CREATE TABLE user_stats (
- user_id TEXT NOT NULL,
- ts BIGINT NOT NULL,
- bucket_size INT NOT NULL,
- public_rooms INT NOT NULL,
- private_rooms INT NOT NULL
-);
-
-CREATE UNIQUE INDEX user_stats_user_ts ON user_stats(user_id, ts);
-
-CREATE TABLE room_stats (
- room_id TEXT NOT NULL,
- ts BIGINT NOT NULL,
- bucket_size INT NOT NULL,
- current_state_events INT NOT NULL,
- joined_members INT NOT NULL,
- invited_members INT NOT NULL,
- left_members INT NOT NULL,
- banned_members INT NOT NULL,
- state_events INT NOT NULL
-);
-
-CREATE UNIQUE INDEX room_stats_room_ts ON room_stats(room_id, ts);
-
--- cache of current room state; useful for the publicRooms list
-CREATE TABLE room_state (
- room_id TEXT NOT NULL,
- join_rules TEXT,
- history_visibility TEXT,
- encryption TEXT,
- name TEXT,
- topic TEXT,
- avatar TEXT,
- canonical_alias TEXT
- -- get aliases straight from the right table
-);
-
-CREATE UNIQUE INDEX room_state_room ON room_state(room_id);
-
-CREATE TABLE room_stats_earliest_token (
- room_id TEXT NOT NULL,
- token BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX room_stats_earliest_token_idx ON room_stats_earliest_token(room_id);
-
--- Set up staging tables
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('populate_stats_createtables', '{}');
-
--- Run through each room and update stats
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_stats_process_rooms', '{}', 'populate_stats_createtables');
-
--- Clean up staging tables
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_stats_cleanup', '{}', 'populate_stats_process_rooms');
diff --git a/synapse/storage/databases/main/schema/delta/54/stats2.sql b/synapse/storage/databases/main/schema/delta/54/stats2.sql
deleted file mode 100644
index 3b2d48447f..0000000000
--- a/synapse/storage/databases/main/schema/delta/54/stats2.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2019 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 delta file gets run after `54/stats.sql` delta.
-
--- We want to add some indices to the temporary stats table, so we re-insert
--- 'populate_stats_createtables' if we are still processing the rooms update.
-INSERT INTO background_updates (update_name, progress_json)
- SELECT 'populate_stats_createtables', '{}'
- WHERE
- 'populate_stats_process_rooms' IN (
- SELECT update_name FROM background_updates
- )
- AND 'populate_stats_createtables' NOT IN ( -- don't insert if already exists
- SELECT update_name FROM background_updates
- );
diff --git a/synapse/storage/databases/main/schema/delta/55/access_token_expiry.sql b/synapse/storage/databases/main/schema/delta/55/access_token_expiry.sql
deleted file mode 100644
index 4590604bfd..0000000000
--- a/synapse/storage/databases/main/schema/delta/55/access_token_expiry.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- when this access token can be used until, in ms since the epoch. NULL means the token
--- never expires.
-ALTER TABLE access_tokens ADD COLUMN valid_until_ms BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/55/track_threepid_validations.sql b/synapse/storage/databases/main/schema/delta/55/track_threepid_validations.sql
deleted file mode 100644
index a8eced2e0a..0000000000
--- a/synapse/storage/databases/main/schema/delta/55/track_threepid_validations.sql
+++ /dev/null
@@ -1,31 +0,0 @@
-/* Copyright 2019 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.
- */
-CREATE TABLE IF NOT EXISTS threepid_validation_session (
- session_id TEXT PRIMARY KEY,
- medium TEXT NOT NULL,
- address TEXT NOT NULL,
- client_secret TEXT NOT NULL,
- last_send_attempt BIGINT NOT NULL,
- validated_at BIGINT
-);
-
-CREATE TABLE IF NOT EXISTS threepid_validation_token (
- token TEXT PRIMARY KEY,
- session_id TEXT NOT NULL,
- next_link TEXT,
- expires BIGINT NOT NULL
-);
-
-CREATE INDEX threepid_validation_token_session_id ON threepid_validation_token(session_id);
diff --git a/synapse/storage/databases/main/schema/delta/55/users_alter_deactivated.sql b/synapse/storage/databases/main/schema/delta/55/users_alter_deactivated.sql
deleted file mode 100644
index dabdde489b..0000000000
--- a/synapse/storage/databases/main/schema/delta/55/users_alter_deactivated.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2019 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.
- */
-
-ALTER TABLE users ADD deactivated SMALLINT DEFAULT 0 NOT NULL;
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('users_set_deactivated_flag', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/add_spans_to_device_lists.sql b/synapse/storage/databases/main/schema/delta/56/add_spans_to_device_lists.sql
deleted file mode 100644
index 41807eb1e7..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/add_spans_to_device_lists.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * Opentracing context data for inclusion in the device_list_update EDUs, as a
- * json-encoded dictionary. NULL if opentracing is disabled (or not enabled for this destination).
- */
-ALTER TABLE device_lists_outbound_pokes ADD opentracing_context TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/56/current_state_events_membership.sql b/synapse/storage/databases/main/schema/delta/56/current_state_events_membership.sql
deleted file mode 100644
index 473018676f..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/current_state_events_membership.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- We add membership to current state so that we don't need to join against
--- room_memberships, which can be surprisingly costly (we do such queries
--- very frequently).
--- This will be null for non-membership events and the content.membership key
--- for membership events. (Will also be null for membership events until the
--- background update job has finished).
-ALTER TABLE current_state_events ADD membership TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/56/current_state_events_membership_mk2.sql b/synapse/storage/databases/main/schema/delta/56/current_state_events_membership_mk2.sql
deleted file mode 100644
index 3133d42d4a..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/current_state_events_membership_mk2.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- We add membership to current state so that we don't need to join against
--- room_memberships, which can be surprisingly costly (we do such queries
--- very frequently).
--- This will be null for non-membership events and the content.membership key
--- for membership events. (Will also be null for membership events until the
--- background update job has finished).
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('current_state_events_membership', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/delete_keys_from_deleted_backups.sql b/synapse/storage/databases/main/schema/delta/56/delete_keys_from_deleted_backups.sql
deleted file mode 100644
index 1d2ddb1b1a..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/delete_keys_from_deleted_backups.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* delete room keys that belong to deleted room key version, or to room key
- * versions that don't exist (anymore)
- */
-DELETE FROM e2e_room_keys
-WHERE version NOT IN (
- SELECT version
- FROM e2e_room_keys_versions
- WHERE e2e_room_keys.user_id = e2e_room_keys_versions.user_id
- AND e2e_room_keys_versions.deleted = 0
-);
diff --git a/synapse/storage/databases/main/schema/delta/56/destinations_failure_ts.sql b/synapse/storage/databases/main/schema/delta/56/destinations_failure_ts.sql
deleted file mode 100644
index f00889290b..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/destinations_failure_ts.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * Record the timestamp when a given server started failing
- */
-ALTER TABLE destinations ADD failure_ts BIGINT;
-
-/* as a rough approximation, we assume that the server started failing at
- * retry_interval before the last retry
- */
-UPDATE destinations SET failure_ts = retry_last_ts - retry_interval
- WHERE retry_last_ts > 0;
diff --git a/synapse/storage/databases/main/schema/delta/56/destinations_retry_interval_type.sql.postgres b/synapse/storage/databases/main/schema/delta/56/destinations_retry_interval_type.sql.postgres
deleted file mode 100644
index b9bbb18a91..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/destinations_retry_interval_type.sql.postgres
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- We want to store large retry intervals so we upgrade the column from INT
--- to BIGINT. We don't need to do this on SQLite.
-ALTER TABLE destinations ALTER retry_interval SET DATA TYPE BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/56/device_stream_id_insert.sql b/synapse/storage/databases/main/schema/delta/56/device_stream_id_insert.sql
deleted file mode 100644
index c2f557fde9..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/device_stream_id_insert.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2019 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 line already existed in deltas/35/device_stream_id but was not included in the
--- 54 full schema SQL. Add some SQL here to insert the missing row if it does not exist
-INSERT INTO device_max_stream_id (stream_id) SELECT 0 WHERE NOT EXISTS (
- SELECT * from device_max_stream_id
-);
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/56/devices_last_seen.sql b/synapse/storage/databases/main/schema/delta/56/devices_last_seen.sql
deleted file mode 100644
index dfa902d0ba..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/devices_last_seen.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2019 Matrix.org Foundation CIC
- *
- * 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.
- */
-
--- Track last seen information for a device in the devices table, rather
--- than relying on it being in the user_ips table (which we want to be able
--- to purge old entries from)
-ALTER TABLE devices ADD COLUMN last_seen BIGINT;
-ALTER TABLE devices ADD COLUMN ip TEXT;
-ALTER TABLE devices ADD COLUMN user_agent TEXT;
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('devices_last_seen', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/drop_unused_event_tables.sql b/synapse/storage/databases/main/schema/delta/56/drop_unused_event_tables.sql
deleted file mode 100644
index 9f09922c67..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/drop_unused_event_tables.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- these tables are never used.
-DROP TABLE IF EXISTS room_names;
-DROP TABLE IF EXISTS topics;
-DROP TABLE IF EXISTS history_visibility;
-DROP TABLE IF EXISTS guest_access;
diff --git a/synapse/storage/databases/main/schema/delta/56/event_expiry.sql b/synapse/storage/databases/main/schema/delta/56/event_expiry.sql
deleted file mode 100644
index 81a36a8b1d..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/event_expiry.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2019 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.
- */
-
-CREATE TABLE IF NOT EXISTS event_expiry (
- event_id TEXT PRIMARY KEY,
- expiry_ts BIGINT NOT NULL
-);
-
-CREATE INDEX event_expiry_expiry_ts_idx ON event_expiry(expiry_ts);
diff --git a/synapse/storage/databases/main/schema/delta/56/event_labels.sql b/synapse/storage/databases/main/schema/delta/56/event_labels.sql
deleted file mode 100644
index ccf287971c..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/event_labels.sql
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- room_id and topological_ordering are denormalised from the events table in order to
--- make the index work.
-CREATE TABLE IF NOT EXISTS event_labels (
- event_id TEXT,
- label TEXT,
- room_id TEXT NOT NULL,
- topological_ordering BIGINT NOT NULL,
- PRIMARY KEY(event_id, label)
-);
-
-
--- This index enables an event pagination looking for a particular label to index the
--- event_labels table first, which is much quicker than scanning the events table and then
--- filtering by label, if the label is rarely used relative to the size of the room.
-CREATE INDEX event_labels_room_id_label_idx ON event_labels(room_id, label, topological_ordering);
diff --git a/synapse/storage/databases/main/schema/delta/56/event_labels_background_update.sql b/synapse/storage/databases/main/schema/delta/56/event_labels_background_update.sql
deleted file mode 100644
index 5f5e0499ae..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/event_labels_background_update.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('event_store_labels', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/fix_room_keys_index.sql b/synapse/storage/databases/main/schema/delta/56/fix_room_keys_index.sql
deleted file mode 100644
index 014cb3b538..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/fix_room_keys_index.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 Matrix.org Foundation CIC
- *
- * 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.
- */
-
--- version is supposed to be part of the room keys index
-CREATE UNIQUE INDEX e2e_room_keys_with_version_idx ON e2e_room_keys(user_id, version, room_id, session_id);
-DROP INDEX IF EXISTS e2e_room_keys_idx;
diff --git a/synapse/storage/databases/main/schema/delta/56/hidden_devices.sql b/synapse/storage/databases/main/schema/delta/56/hidden_devices.sql
deleted file mode 100644
index 67f8b20297..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/hidden_devices.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- device list needs to know which ones are "real" devices, and which ones are
--- just used to avoid collisions
-ALTER TABLE devices ADD COLUMN hidden BOOLEAN DEFAULT FALSE;
diff --git a/synapse/storage/databases/main/schema/delta/56/hidden_devices_fix.sql.sqlite b/synapse/storage/databases/main/schema/delta/56/hidden_devices_fix.sql.sqlite
deleted file mode 100644
index e8b1fd35d8..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/hidden_devices_fix.sql.sqlite
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* Change the hidden column from a default value of FALSE to a default value of
- * 0, because sqlite3 prior to 3.23.0 caused the hidden column to contain the
- * string 'FALSE', which is truthy.
- *
- * Since sqlite doesn't allow us to just change the default value, we have to
- * recreate the table, copy the data, fix the rows that have incorrect data, and
- * replace the old table with the new table.
- */
-
-CREATE TABLE IF NOT EXISTS devices2 (
- user_id TEXT NOT NULL,
- device_id TEXT NOT NULL,
- display_name TEXT,
- last_seen BIGINT,
- ip TEXT,
- user_agent TEXT,
- hidden BOOLEAN DEFAULT 0,
- CONSTRAINT device_uniqueness UNIQUE (user_id, device_id)
-);
-
-INSERT INTO devices2 SELECT * FROM devices;
-
-UPDATE devices2 SET hidden = 0 WHERE hidden = 'FALSE';
-
-DROP TABLE devices;
-
-ALTER TABLE devices2 RENAME TO devices;
diff --git a/synapse/storage/databases/main/schema/delta/56/nuke_empty_communities_from_db.sql b/synapse/storage/databases/main/schema/delta/56/nuke_empty_communities_from_db.sql
deleted file mode 100644
index 4f24c1405d..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/nuke_empty_communities_from_db.sql
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2019 Werner Sembach
- *
- * 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.
- */
-
--- Groups/communities now get deleted when the last member leaves. This is a one time cleanup to remove old groups/communities that were already empty before that change was made.
-DELETE FROM group_attestations_remote WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_attestations_renewals WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_invites WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_roles WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_room_categories WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_rooms WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_summary_roles WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_summary_room_categories WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_summary_rooms WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM group_summary_users WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM local_group_membership WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM local_group_updates WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
-DELETE FROM groups WHERE group_id IN (SELECT group_id FROM groups WHERE NOT EXISTS (SELECT group_id FROM group_users WHERE group_id = groups.group_id));
diff --git a/synapse/storage/databases/main/schema/delta/56/public_room_list_idx.sql b/synapse/storage/databases/main/schema/delta/56/public_room_list_idx.sql
deleted file mode 100644
index 7be31ffebb..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/public_room_list_idx.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 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.
- */
-
-CREATE INDEX public_room_list_stream_network ON public_room_list_stream (appservice_id, network_id, room_id);
diff --git a/synapse/storage/databases/main/schema/delta/56/redaction_censor.sql b/synapse/storage/databases/main/schema/delta/56/redaction_censor.sql
deleted file mode 100644
index ea95db0ed7..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/redaction_censor.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 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.
- */
-
-ALTER TABLE redactions ADD COLUMN have_censored BOOL NOT NULL DEFAULT false;
diff --git a/synapse/storage/databases/main/schema/delta/56/redaction_censor2.sql b/synapse/storage/databases/main/schema/delta/56/redaction_censor2.sql
deleted file mode 100644
index 49ce35d794..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/redaction_censor2.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2019 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.
- */
-
-ALTER TABLE redactions ADD COLUMN received_ts BIGINT;
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('redactions_received_ts', '{}');
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('redactions_have_censored_ts_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/redaction_censor3_fix_update.sql.postgres b/synapse/storage/databases/main/schema/delta/56/redaction_censor3_fix_update.sql.postgres
deleted file mode 100644
index 67471f3ef5..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/redaction_censor3_fix_update.sql.postgres
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2019 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.
- */
-
-
--- There was a bug where we may have updated censored redactions as bytes,
--- which can (somehow) cause json to be inserted hex encoded. These updates go
--- and undoes any such hex encoded JSON.
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('event_fix_redactions_bytes_create_index', '{}');
-
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES ('event_fix_redactions_bytes', '{}', 'event_fix_redactions_bytes_create_index');
diff --git a/synapse/storage/databases/main/schema/delta/56/redaction_censor4.sql b/synapse/storage/databases/main/schema/delta/56/redaction_censor4.sql
deleted file mode 100644
index b7550f6f4e..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/redaction_censor4.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2019 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.
- */
-
-DROP INDEX IF EXISTS redactions_have_censored;
diff --git a/synapse/storage/databases/main/schema/delta/56/remove_tombstoned_rooms_from_directory.sql b/synapse/storage/databases/main/schema/delta/56/remove_tombstoned_rooms_from_directory.sql
deleted file mode 100644
index aeb17813d3..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/remove_tombstoned_rooms_from_directory.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Now that #6232 is a thing, we can remove old rooms from the directory.
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('remove_tombstoned_rooms_from_directory', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/room_key_etag.sql b/synapse/storage/databases/main/schema/delta/56/room_key_etag.sql
deleted file mode 100644
index 7d70dd071e..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/room_key_etag.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- store the current etag of backup version
-ALTER TABLE e2e_room_keys_versions ADD COLUMN etag BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/56/room_membership_idx.sql b/synapse/storage/databases/main/schema/delta/56/room_membership_idx.sql
deleted file mode 100644
index 92ab1f5e65..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/room_membership_idx.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2019 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.
- */
-
--- Adds an index on room_memberships for fetching all forgotten rooms for a user
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('room_membership_forgotten_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/room_retention.sql b/synapse/storage/databases/main/schema/delta/56/room_retention.sql
deleted file mode 100644
index ee6cdf7a14..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/room_retention.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- Tracks the retention policy of a room.
--- A NULL max_lifetime or min_lifetime means that the matching property is not defined in
--- the room's retention policy state event.
--- If a room doesn't have a retention policy state event in its state, both max_lifetime
--- and min_lifetime are NULL.
-CREATE TABLE IF NOT EXISTS room_retention(
- room_id TEXT,
- event_id TEXT,
- min_lifetime BIGINT,
- max_lifetime BIGINT,
-
- PRIMARY KEY(room_id, event_id)
-);
-
-CREATE INDEX room_retention_max_lifetime_idx on room_retention(max_lifetime);
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('insert_room_retention', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/56/signing_keys.sql b/synapse/storage/databases/main/schema/delta/56/signing_keys.sql
deleted file mode 100644
index 5c5fffcafb..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/signing_keys.sql
+++ /dev/null
@@ -1,56 +0,0 @@
-/* Copyright 2019 New Vector Ltd
- *
- * 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.
- */
-
--- cross-signing keys
-CREATE TABLE IF NOT EXISTS e2e_cross_signing_keys (
- user_id TEXT NOT NULL,
- -- the type of cross-signing key (master, user_signing, or self_signing)
- keytype TEXT NOT NULL,
- -- the full key information, as a json-encoded dict
- keydata TEXT NOT NULL,
- -- for keeping the keys in order, so that we can fetch the latest one
- stream_id BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX e2e_cross_signing_keys_idx ON e2e_cross_signing_keys(user_id, keytype, stream_id);
-
--- cross-signing signatures
-CREATE TABLE IF NOT EXISTS e2e_cross_signing_signatures (
- -- user who did the signing
- user_id TEXT NOT NULL,
- -- key used to sign
- key_id TEXT NOT NULL,
- -- user who was signed
- target_user_id TEXT NOT NULL,
- -- device/key that was signed
- target_device_id TEXT NOT NULL,
- -- the actual signature
- signature TEXT NOT NULL
-);
-
--- replaced by the index created in signing_keys_nonunique_signatures.sql
--- CREATE UNIQUE INDEX e2e_cross_signing_signatures_idx ON e2e_cross_signing_signatures(user_id, target_user_id, target_device_id);
-
--- stream of user signature updates
-CREATE TABLE IF NOT EXISTS user_signature_stream (
- -- uses the same stream ID as device list stream
- stream_id BIGINT NOT NULL,
- -- user who did the signing
- from_user_id TEXT NOT NULL,
- -- list of users who were signed, as a JSON array
- user_ids TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX user_signature_stream_idx ON user_signature_stream(stream_id);
diff --git a/synapse/storage/databases/main/schema/delta/56/signing_keys_nonunique_signatures.sql b/synapse/storage/databases/main/schema/delta/56/signing_keys_nonunique_signatures.sql
deleted file mode 100644
index 0aa90ebf0c..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/signing_keys_nonunique_signatures.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/* The cross-signing signatures index should not be a unique index, because a
- * user may upload multiple signatures for the same target user. The previous
- * index was unique, so delete it if it's there and create a new non-unique
- * index. */
-
-DROP INDEX IF EXISTS e2e_cross_signing_signatures_idx; CREATE INDEX IF NOT
-EXISTS e2e_cross_signing_signatures2_idx ON e2e_cross_signing_signatures(user_id, target_user_id, target_device_id);
diff --git a/synapse/storage/databases/main/schema/delta/56/stats_separated.sql b/synapse/storage/databases/main/schema/delta/56/stats_separated.sql
deleted file mode 100644
index bbdde121e8..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/stats_separated.sql
+++ /dev/null
@@ -1,156 +0,0 @@
-/* Copyright 2018 New Vector Ltd
- * Copyright 2019 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.
- */
-
-
------ First clean up from previous versions of room stats.
-
--- First remove old stats stuff
-DROP TABLE IF EXISTS room_stats;
-DROP TABLE IF EXISTS room_state;
-DROP TABLE IF EXISTS room_stats_state;
-DROP TABLE IF EXISTS user_stats;
-DROP TABLE IF EXISTS room_stats_earliest_tokens;
-DROP TABLE IF EXISTS _temp_populate_stats_position;
-DROP TABLE IF EXISTS _temp_populate_stats_rooms;
-DROP TABLE IF EXISTS stats_stream_pos;
-
--- Unschedule old background updates if they're still scheduled
-DELETE FROM background_updates WHERE update_name IN (
- 'populate_stats_createtables',
- 'populate_stats_process_rooms',
- 'populate_stats_process_users',
- 'populate_stats_cleanup'
-);
-
--- this relies on current_state_events.membership having been populated, so add
--- a dependency on current_state_events_membership.
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_stats_process_rooms', '{}', 'current_state_events_membership');
-
--- this also relies on current_state_events.membership having been populated, but
--- we get that as a side-effect of depending on populate_stats_process_rooms.
-INSERT INTO background_updates (update_name, progress_json, depends_on) VALUES
- ('populate_stats_process_users', '{}', 'populate_stats_process_rooms');
-
------ Create tables for our version of room stats.
-
--- single-row table to track position of incremental updates
-DROP TABLE IF EXISTS stats_incremental_position;
-CREATE TABLE stats_incremental_position (
- Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, -- Makes sure this table only has one row.
- stream_id BIGINT NOT NULL,
- CHECK (Lock='X')
-);
-
--- insert a null row and make sure it is the only one.
-INSERT INTO stats_incremental_position (
- stream_id
-) SELECT COALESCE(MAX(stream_ordering), 0) from events;
-
--- represents PRESENT room statistics for a room
--- only holds absolute fields
-DROP TABLE IF EXISTS room_stats_current;
-CREATE TABLE room_stats_current (
- room_id TEXT NOT NULL PRIMARY KEY,
-
- -- These are absolute counts
- current_state_events INT NOT NULL,
- joined_members INT NOT NULL,
- invited_members INT NOT NULL,
- left_members INT NOT NULL,
- banned_members INT NOT NULL,
-
- local_users_in_room INT NOT NULL,
-
- -- The maximum delta stream position that this row takes into account.
- completed_delta_stream_id BIGINT NOT NULL
-);
-
-
--- represents HISTORICAL room statistics for a room
-DROP TABLE IF EXISTS room_stats_historical;
-CREATE TABLE room_stats_historical (
- room_id TEXT NOT NULL,
- -- These stats cover the time from (end_ts - bucket_size)...end_ts (in ms).
- -- Note that end_ts is quantised.
- end_ts BIGINT NOT NULL,
- bucket_size BIGINT NOT NULL,
-
- -- These stats are absolute counts
- current_state_events BIGINT NOT NULL,
- joined_members BIGINT NOT NULL,
- invited_members BIGINT NOT NULL,
- left_members BIGINT NOT NULL,
- banned_members BIGINT NOT NULL,
- local_users_in_room BIGINT NOT NULL,
-
- -- These stats are per time slice
- total_events BIGINT NOT NULL,
- total_event_bytes BIGINT NOT NULL,
-
- PRIMARY KEY (room_id, end_ts)
-);
-
--- We use this index to speed up deletion of ancient room stats.
-CREATE INDEX room_stats_historical_end_ts ON room_stats_historical (end_ts);
-
--- represents PRESENT statistics for a user
--- only holds absolute fields
-DROP TABLE IF EXISTS user_stats_current;
-CREATE TABLE user_stats_current (
- user_id TEXT NOT NULL PRIMARY KEY,
-
- joined_rooms BIGINT NOT NULL,
-
- -- The maximum delta stream position that this row takes into account.
- completed_delta_stream_id BIGINT NOT NULL
-);
-
--- represents HISTORICAL statistics for a user
-DROP TABLE IF EXISTS user_stats_historical;
-CREATE TABLE user_stats_historical (
- user_id TEXT NOT NULL,
- end_ts BIGINT NOT NULL,
- bucket_size BIGINT NOT NULL,
-
- joined_rooms BIGINT NOT NULL,
-
- invites_sent BIGINT NOT NULL,
- rooms_created BIGINT NOT NULL,
- total_events BIGINT NOT NULL,
- total_event_bytes BIGINT NOT NULL,
-
- PRIMARY KEY (user_id, end_ts)
-);
-
--- We use this index to speed up deletion of ancient user stats.
-CREATE INDEX user_stats_historical_end_ts ON user_stats_historical (end_ts);
-
-
-CREATE TABLE room_stats_state (
- room_id TEXT NOT NULL,
- name TEXT,
- canonical_alias TEXT,
- join_rules TEXT,
- history_visibility TEXT,
- encryption TEXT,
- avatar TEXT,
- guest_access TEXT,
- is_federatable BOOLEAN,
- topic TEXT
-);
-
-CREATE UNIQUE INDEX room_stats_state_room ON room_stats_state(room_id);
diff --git a/synapse/storage/databases/main/schema/delta/56/unique_user_filter_index.py b/synapse/storage/databases/main/schema/delta/56/unique_user_filter_index.py
deleted file mode 100644
index bb7296852a..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/unique_user_filter_index.py
+++ /dev/null
@@ -1,51 +0,0 @@
-import logging
-from io import StringIO
-
-from synapse.storage.engines import PostgresEngine
-from synapse.storage.prepare_database import execute_statements_from_stream
-
-logger = logging.getLogger(__name__)
-
-
-"""
-This migration updates the user_filters table as follows:
-
- - drops any (user_id, filter_id) duplicates
- - makes the columns NON-NULLable
- - turns the index into a UNIQUE index
-"""
-
-
-def run_upgrade(cur, database_engine, *args, **kwargs):
- pass
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if isinstance(database_engine, PostgresEngine):
- select_clause = """
- SELECT DISTINCT ON (user_id, filter_id) user_id, filter_id, filter_json
- FROM user_filters
- """
- else:
- select_clause = """
- SELECT * FROM user_filters GROUP BY user_id, filter_id
- """
- sql = """
- DROP TABLE IF EXISTS user_filters_migration;
- DROP INDEX IF EXISTS user_filters_unique;
- CREATE TABLE user_filters_migration (
- user_id TEXT NOT NULL,
- filter_id BIGINT NOT NULL,
- filter_json BYTEA NOT NULL
- );
- INSERT INTO user_filters_migration (user_id, filter_id, filter_json)
- %s;
- CREATE UNIQUE INDEX user_filters_unique ON user_filters_migration
- (user_id, filter_id);
- DROP TABLE user_filters;
- ALTER TABLE user_filters_migration RENAME TO user_filters;
- """ % (
- select_clause,
- )
-
- execute_statements_from_stream(cur, StringIO(sql))
diff --git a/synapse/storage/databases/main/schema/delta/56/user_external_ids.sql b/synapse/storage/databases/main/schema/delta/56/user_external_ids.sql
deleted file mode 100644
index 91390c4527..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/user_external_ids.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2019 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.
- */
-
-/*
- * a table which records mappings from external auth providers to mxids
- */
-CREATE TABLE IF NOT EXISTS user_external_ids (
- auth_provider TEXT NOT NULL,
- external_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- UNIQUE (auth_provider, external_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/56/users_in_public_rooms_idx.sql b/synapse/storage/databases/main/schema/delta/56/users_in_public_rooms_idx.sql
deleted file mode 100644
index 149f8be8b6..0000000000
--- a/synapse/storage/databases/main/schema/delta/56/users_in_public_rooms_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 Matrix.org Foundation CIC
- *
- * 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 was apparently forgotten when the table was created back in delta 53.
-CREATE INDEX users_in_public_rooms_r_idx ON users_in_public_rooms(room_id);
diff --git a/synapse/storage/databases/main/schema/delta/57/delete_old_current_state_events.sql b/synapse/storage/databases/main/schema/delta/57/delete_old_current_state_events.sql
deleted file mode 100644
index aec06c8261..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/delete_old_current_state_events.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Add background update to go and delete current state events for rooms the
--- server is no longer in.
---
--- this relies on the 'membership' column of current_state_events, so make sure
--- that's populated first!
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES ('delete_old_current_state_events', '{}', 'current_state_events_membership');
diff --git a/synapse/storage/databases/main/schema/delta/57/device_list_remote_cache_stale.sql b/synapse/storage/databases/main/schema/delta/57/device_list_remote_cache_stale.sql
deleted file mode 100644
index c3b6de2099..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/device_list_remote_cache_stale.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Records whether the server thinks that the remote users cached device lists
--- may be out of date (e.g. if we have received a to device message from a
--- device we don't know about).
-CREATE TABLE IF NOT EXISTS device_lists_remote_resync (
- user_id TEXT NOT NULL,
- added_ts BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX device_lists_remote_resync_idx ON device_lists_remote_resync (user_id);
-CREATE INDEX device_lists_remote_resync_ts_idx ON device_lists_remote_resync (added_ts);
diff --git a/synapse/storage/databases/main/schema/delta/57/local_current_membership.py b/synapse/storage/databases/main/schema/delta/57/local_current_membership.py
deleted file mode 100644
index 66989222e6..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/local_current_membership.py
+++ /dev/null
@@ -1,96 +0,0 @@
-# Copyright 2020 New Vector Ltd
-#
-# 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.
-
-
-# We create a new table called `local_current_membership` that stores the latest
-# membership state of local users in rooms, which helps track leaves/bans/etc
-# even if the server has left the room (and so has deleted the room from
-# `current_state_events`). This will also include outstanding invites for local
-# users for rooms the server isn't in.
-#
-# If the server isn't and hasn't been in the room then it will only include
-# outsstanding invites, and not e.g. pre-emptive bans of local users.
-#
-# If the server later rejoins a room `local_current_membership` can simply be
-# replaced with the new current state of the room (which results in the
-# equivalent behaviour as if the server had remained in the room).
-
-
-def run_upgrade(cur, database_engine, config, *args, **kwargs):
- # We need to do the insert in `run_upgrade` section as we don't have access
- # to `config` in `run_create`.
-
- # This upgrade may take a bit of time for large servers (e.g. one minute for
- # matrix.org) but means we avoid a lots of book keeping required to do it as
- # a background update.
-
- # We check if the `current_state_events.membership` is up to date by
- # checking if the relevant background update has finished. If it has
- # finished we can avoid doing a join against `room_memberships`, which
- # speesd things up.
- cur.execute(
- """SELECT 1 FROM background_updates
- WHERE update_name = 'current_state_events_membership'
- """
- )
- current_state_membership_up_to_date = not bool(cur.fetchone())
-
- # Cheekily drop and recreate indices, as that is faster.
- cur.execute("DROP INDEX local_current_membership_idx")
- cur.execute("DROP INDEX local_current_membership_room_idx")
-
- if current_state_membership_up_to_date:
- sql = """
- INSERT INTO local_current_membership (room_id, user_id, event_id, membership)
- SELECT c.room_id, state_key AS user_id, event_id, c.membership
- FROM current_state_events AS c
- WHERE type = 'm.room.member' AND c.membership IS NOT NULL AND state_key LIKE ?
- """
- else:
- # We can't rely on the membership column, so we need to join against
- # `room_memberships`.
- sql = """
- INSERT INTO local_current_membership (room_id, user_id, event_id, membership)
- SELECT c.room_id, state_key AS user_id, event_id, r.membership
- FROM current_state_events AS c
- INNER JOIN room_memberships AS r USING (event_id)
- WHERE type = 'm.room.member' AND state_key LIKE ?
- """
- cur.execute(sql, ("%:" + config.server_name,))
-
- cur.execute(
- "CREATE UNIQUE INDEX local_current_membership_idx ON local_current_membership(user_id, room_id)"
- )
- cur.execute(
- "CREATE INDEX local_current_membership_room_idx ON local_current_membership(room_id)"
- )
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- cur.execute(
- """
- CREATE TABLE local_current_membership (
- room_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- event_id TEXT NOT NULL,
- membership TEXT NOT NULL
- )"""
- )
-
- cur.execute(
- "CREATE UNIQUE INDEX local_current_membership_idx ON local_current_membership(user_id, room_id)"
- )
- cur.execute(
- "CREATE INDEX local_current_membership_room_idx ON local_current_membership(room_id)"
- )
diff --git a/synapse/storage/databases/main/schema/delta/57/remove_sent_outbound_pokes.sql b/synapse/storage/databases/main/schema/delta/57/remove_sent_outbound_pokes.sql
deleted file mode 100644
index 133d80af35..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/remove_sent_outbound_pokes.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- we no longer keep sent outbound device pokes in the db; clear them out
--- so that we don't have to worry about them.
---
--- This is a sequence scan, but it doesn't take too long.
-
-DELETE FROM device_lists_outbound_pokes WHERE sent;
diff --git a/synapse/storage/databases/main/schema/delta/57/rooms_version_column.sql b/synapse/storage/databases/main/schema/delta/57/rooms_version_column.sql
deleted file mode 100644
index 352a66f5b0..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/rooms_version_column.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 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.
- */
-
-
--- We want to start storing the room version independently of
--- `current_state_events` so that we can delete stale entries from it without
--- losing the information.
-ALTER TABLE rooms ADD COLUMN room_version TEXT;
-
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('add_rooms_room_version_column', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.postgres b/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.postgres
deleted file mode 100644
index c601cff6de..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.postgres
+++ /dev/null
@@ -1,35 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- when we first added the room_version column, it was populated via a background
--- update. We now need it to be populated before synapse starts, so we populate
--- any remaining rows with a NULL room version now. For servers which have completed
--- the background update, this will be pretty quick.
-
--- the following query will set room_version to NULL if no create event is found for
--- the room in current_state_events, and will set it to '1' if a create event with no
--- room_version is found.
-
-UPDATE rooms SET room_version=(
- SELECT COALESCE(json::json->'content'->>'room_version','1')
- FROM current_state_events cse INNER JOIN event_json ej USING (event_id)
- WHERE cse.room_id=rooms.room_id AND cse.type='m.room.create' AND cse.state_key=''
-) WHERE rooms.room_version IS NULL;
-
--- we still allow the background update to complete: it has the useful side-effect of
--- populating `rooms` with any missing rooms (based on the current_state_events table).
-
--- see also rooms_version_column_2.sql.sqlite which has a copy of the above query, using
--- sqlite syntax for the json extraction.
diff --git a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.sqlite b/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.sqlite
deleted file mode 100644
index 335c6f2074..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_2.sql.sqlite
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- see rooms_version_column_2.sql.postgres for details of what's going on here.
-
-UPDATE rooms SET room_version=(
- SELECT COALESCE(json_extract(ej.json, '$.content.room_version'), '1')
- FROM current_state_events cse INNER JOIN event_json ej USING (event_id)
- WHERE cse.room_id=rooms.room_id AND cse.type='m.room.create' AND cse.state_key=''
-) WHERE rooms.room_version IS NULL;
diff --git a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.postgres b/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.postgres
deleted file mode 100644
index 92aaadde0d..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.postgres
+++ /dev/null
@@ -1,39 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- When we first added the room_version column to the rooms table, it was populated from
--- the current_state_events table. However, there was an issue causing a background
--- update to clean up the current_state_events table for rooms where the server is no
--- longer participating, before that column could be populated. Therefore, some rooms had
--- a NULL room_version.
-
--- The rooms_version_column_2.sql.* delta files were introduced to make the populating
--- synchronous instead of running it in a background update, which fixed this issue.
--- However, all of the instances of Synapse installed or updated in the meantime got
--- their rooms table corrupted with NULL room_versions.
-
--- This query fishes out the room versions from the create event using the state_events
--- table instead of the current_state_events one, as the former still have all of the
--- create events.
-
-UPDATE rooms SET room_version=(
- SELECT COALESCE(json::json->'content'->>'room_version','1')
- FROM state_events se INNER JOIN event_json ej USING (event_id)
- WHERE se.room_id=rooms.room_id AND se.type='m.room.create' AND se.state_key=''
- LIMIT 1
-) WHERE rooms.room_version IS NULL;
-
--- see also rooms_version_column_3.sql.sqlite which has a copy of the above query, using
--- sqlite syntax for the json extraction.
diff --git a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.sqlite b/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.sqlite
deleted file mode 100644
index e19dab97cb..0000000000
--- a/synapse/storage/databases/main/schema/delta/57/rooms_version_column_3.sql.sqlite
+++ /dev/null
@@ -1,23 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- see rooms_version_column_3.sql.postgres for details of what's going on here.
-
-UPDATE rooms SET room_version=(
- SELECT COALESCE(json_extract(ej.json, '$.content.room_version'), '1')
- FROM state_events se INNER JOIN event_json ej USING (event_id)
- WHERE se.room_id=rooms.room_id AND se.type='m.room.create' AND se.state_key=''
- LIMIT 1
-) WHERE rooms.room_version IS NULL;
diff --git a/synapse/storage/databases/main/schema/delta/58/02remove_dup_outbound_pokes.sql b/synapse/storage/databases/main/schema/delta/58/02remove_dup_outbound_pokes.sql
deleted file mode 100644
index fdc39e9ba5..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/02remove_dup_outbound_pokes.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
- /* for some reason, we have accumulated duplicate entries in
- * device_lists_outbound_pokes, which makes prune_outbound_device_list_pokes less
- * efficient.
- */
-
-INSERT INTO background_updates (ordering, update_name, progress_json)
- VALUES (5800, 'remove_dup_outbound_pokes', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/58/03persist_ui_auth.sql b/synapse/storage/databases/main/schema/delta/58/03persist_ui_auth.sql
deleted file mode 100644
index dcb593fc2d..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/03persist_ui_auth.sql
+++ /dev/null
@@ -1,36 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE TABLE IF NOT EXISTS ui_auth_sessions(
- session_id TEXT NOT NULL, -- The session ID passed to the client.
- creation_time BIGINT NOT NULL, -- The time this session was created (epoch time in milliseconds).
- serverdict TEXT NOT NULL, -- A JSON dictionary of arbitrary data added by Synapse.
- clientdict TEXT NOT NULL, -- A JSON dictionary of arbitrary data from the client.
- uri TEXT NOT NULL, -- The URI the UI authentication session is using.
- method TEXT NOT NULL, -- The HTTP method the UI authentication session is using.
- -- The clientdict, uri, and method make up an tuple that must be immutable
- -- throughout the lifetime of the UI Auth session.
- description TEXT NOT NULL, -- A human readable description of the operation which caused the UI Auth flow to occur.
- UNIQUE (session_id)
-);
-
-CREATE TABLE IF NOT EXISTS ui_auth_sessions_credentials(
- session_id TEXT NOT NULL, -- The corresponding UI Auth session.
- stage_type TEXT NOT NULL, -- The stage type.
- result TEXT NOT NULL, -- The result of the stage verification, stored as JSON.
- UNIQUE (session_id, stage_type),
- FOREIGN KEY (session_id)
- REFERENCES ui_auth_sessions (session_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/58/05cache_instance.sql.postgres b/synapse/storage/databases/main/schema/delta/58/05cache_instance.sql.postgres
deleted file mode 100644
index aa46eb0e10..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/05cache_instance.sql.postgres
+++ /dev/null
@@ -1,30 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- We keep the old table here to enable us to roll back. It doesn't matter
--- that we have dropped all the data here.
-TRUNCATE cache_invalidation_stream;
-
-CREATE TABLE cache_invalidation_stream_by_instance (
- stream_id BIGINT NOT NULL,
- instance_name TEXT NOT NULL,
- cache_func TEXT NOT NULL,
- keys TEXT[],
- invalidation_ts BIGINT
-);
-
-CREATE UNIQUE INDEX cache_invalidation_stream_by_instance_id ON cache_invalidation_stream_by_instance(stream_id);
-
-CREATE SEQUENCE cache_invalidation_stream_seq;
diff --git a/synapse/storage/databases/main/schema/delta/58/06dlols_unique_idx.py b/synapse/storage/databases/main/schema/delta/58/06dlols_unique_idx.py
deleted file mode 100644
index d353f2bcb3..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/06dlols_unique_idx.py
+++ /dev/null
@@ -1,80 +0,0 @@
-# Copyright 2020 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 migration rebuilds the device_lists_outbound_last_success table without duplicate
-entries, and with a UNIQUE index.
-"""
-
-import logging
-from io import StringIO
-
-from synapse.storage.engines import BaseDatabaseEngine, PostgresEngine
-from synapse.storage.prepare_database import execute_statements_from_stream
-from synapse.storage.types import Cursor
-
-logger = logging.getLogger(__name__)
-
-
-def run_upgrade(*args, **kwargs):
- pass
-
-
-def run_create(cur: Cursor, database_engine: BaseDatabaseEngine, *args, **kwargs):
- # some instances might already have this index, in which case we can skip this
- if isinstance(database_engine, PostgresEngine):
- cur.execute(
- """
- SELECT 1 FROM pg_class WHERE relkind = 'i'
- AND relname = 'device_lists_outbound_last_success_unique_idx'
- """
- )
-
- if cur.rowcount:
- logger.info(
- "Unique index exists on device_lists_outbound_last_success: "
- "skipping rebuild"
- )
- return
-
- logger.info("Rebuilding device_lists_outbound_last_success with unique index")
- execute_statements_from_stream(cur, StringIO(_rebuild_commands))
-
-
-# there might be duplicates, so the easiest way to achieve this is to create a new
-# table with the right data, and renaming it into place
-
-_rebuild_commands = """
-DROP TABLE IF EXISTS device_lists_outbound_last_success_new;
-
-CREATE TABLE device_lists_outbound_last_success_new (
- destination TEXT NOT NULL,
- user_id TEXT NOT NULL,
- stream_id BIGINT NOT NULL
-);
-
--- this took about 30 seconds on matrix.org's 16 million rows.
-INSERT INTO device_lists_outbound_last_success_new
- SELECT destination, user_id, MAX(stream_id) FROM device_lists_outbound_last_success
- GROUP BY destination, user_id;
-
--- and this another 30 seconds.
-CREATE UNIQUE INDEX device_lists_outbound_last_success_unique_idx
- ON device_lists_outbound_last_success_new (destination, user_id);
-
-DROP TABLE device_lists_outbound_last_success;
-
-ALTER TABLE device_lists_outbound_last_success_new
- RENAME TO device_lists_outbound_last_success;
-"""
diff --git a/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.postgres b/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.postgres
deleted file mode 100644
index 3275ae2b20..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.postgres
+++ /dev/null
@@ -1,33 +0,0 @@
-/* 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 adds the method to the unique key constraint of the thumbnail databases.
- * Otherwise you can't have a scaled and a cropped thumbnail with the same
- * resolution, which happens quite often with dynamic thumbnailing.
- * This is the postgres specific migration modifying the table with a background
- * migration.
- */
-
--- add new index that includes method to local media
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5807, 'local_media_repository_thumbnails_method_idx', '{}');
-
--- add new index that includes method to remote media
-INSERT INTO background_updates (ordering, update_name, progress_json, depends_on) VALUES
- (5807, 'remote_media_repository_thumbnails_method_idx', '{}', 'local_media_repository_thumbnails_method_idx');
-
--- drop old index
-INSERT INTO background_updates (ordering, update_name, progress_json, depends_on) VALUES
- (5807, 'media_repository_drop_index_wo_method', '{}', 'remote_media_repository_thumbnails_method_idx');
-
diff --git a/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.sqlite b/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.sqlite
deleted file mode 100644
index 1d0c04b53a..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/07add_method_to_thumbnail_constraint.sql.sqlite
+++ /dev/null
@@ -1,44 +0,0 @@
-/* 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 adds the method to the unique key constraint of the thumbnail databases.
- * Otherwise you can't have a scaled and a cropped thumbnail with the same
- * resolution, which happens quite often with dynamic thumbnailing.
- * This is a sqlite specific migration, since sqlite can't modify the unique
- * constraint of a table without recreating it.
- */
-
-CREATE TABLE local_media_repository_thumbnails_new ( media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_type TEXT, thumbnail_method TEXT, thumbnail_length INTEGER, UNIQUE ( media_id, thumbnail_width, thumbnail_height, thumbnail_type, thumbnail_method ) );
-
-INSERT INTO local_media_repository_thumbnails_new
- SELECT media_id, thumbnail_width, thumbnail_height, thumbnail_type, thumbnail_method, thumbnail_length
- FROM local_media_repository_thumbnails;
-
-DROP TABLE local_media_repository_thumbnails;
-
-ALTER TABLE local_media_repository_thumbnails_new RENAME TO local_media_repository_thumbnails;
-
-CREATE INDEX local_media_repository_thumbnails_media_id ON local_media_repository_thumbnails (media_id);
-
-
-
-CREATE TABLE IF NOT EXISTS remote_media_cache_thumbnails_new ( media_origin TEXT, media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_method TEXT, thumbnail_type TEXT, thumbnail_length INTEGER, filesystem_id TEXT, UNIQUE ( media_origin, media_id, thumbnail_width, thumbnail_height, thumbnail_type, thumbnail_method ) );
-
-INSERT INTO remote_media_cache_thumbnails_new
- SELECT media_origin, media_id, thumbnail_width, thumbnail_height, thumbnail_method, thumbnail_type, thumbnail_length, filesystem_id
- FROM remote_media_cache_thumbnails;
-
-DROP TABLE remote_media_cache_thumbnails;
-
-ALTER TABLE remote_media_cache_thumbnails_new RENAME TO remote_media_cache_thumbnails;
diff --git a/synapse/storage/databases/main/schema/delta/58/07persist_ui_auth_ips.sql b/synapse/storage/databases/main/schema/delta/58/07persist_ui_auth_ips.sql
deleted file mode 100644
index 4cc96a5341..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/07persist_ui_auth_ips.sql
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- A table of the IP address and user-agent used to complete each step of a
--- user-interactive authentication session.
-CREATE TABLE IF NOT EXISTS ui_auth_sessions_ips(
- session_id TEXT NOT NULL,
- ip TEXT NOT NULL,
- user_agent TEXT NOT NULL,
- UNIQUE (session_id, ip, user_agent),
- FOREIGN KEY (session_id)
- REFERENCES ui_auth_sessions (session_id)
-);
diff --git a/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.postgres b/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.postgres
deleted file mode 100644
index 597f2ffd3d..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.postgres
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- The local_media_repository should have files which do not get quarantined,
--- e.g. files from sticker packs.
-ALTER TABLE local_media_repository ADD COLUMN safe_from_quarantine BOOLEAN NOT NULL DEFAULT FALSE;
diff --git a/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.sqlite b/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.sqlite
deleted file mode 100644
index 69db89ac0e..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/08_media_safe_from_quarantine.sql.sqlite
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- The local_media_repository should have files which do not get quarantined,
--- e.g. files from sticker packs.
-ALTER TABLE local_media_repository ADD COLUMN safe_from_quarantine BOOLEAN NOT NULL DEFAULT 0;
diff --git a/synapse/storage/databases/main/schema/delta/58/09shadow_ban.sql b/synapse/storage/databases/main/schema/delta/58/09shadow_ban.sql
deleted file mode 100644
index 260b009b48..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/09shadow_ban.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- A shadow-banned user may be told that their requests succeeded when they were
--- actually ignored.
-ALTER TABLE users ADD COLUMN shadow_banned BOOLEAN;
diff --git a/synapse/storage/databases/main/schema/delta/58/10_pushrules_enabled_delete_obsolete.sql b/synapse/storage/databases/main/schema/delta/58/10_pushrules_enabled_delete_obsolete.sql
deleted file mode 100644
index 847aebd85e..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/10_pushrules_enabled_delete_obsolete.sql
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/**
- Delete stuck 'enabled' bits that correspond to deleted or non-existent push rules.
- We ignore rules that are server-default rules because they are not defined
- in the `push_rules` table.
-**/
-
-DELETE FROM push_rules_enable WHERE
- rule_id NOT LIKE 'global/%/.m.rule.%'
- AND NOT EXISTS (
- SELECT 1 FROM push_rules
- WHERE push_rules.user_name = push_rules_enable.user_name
- AND push_rules.rule_id = push_rules_enable.rule_id
- );
diff --git a/synapse/storage/databases/main/schema/delta/58/10drop_local_rejections_stream.sql b/synapse/storage/databases/main/schema/delta/58/10drop_local_rejections_stream.sql
deleted file mode 100644
index eb57203e46..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/10drop_local_rejections_stream.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
-/*
-The version of synapse 1.16.0 on pypi incorrectly contained a migration which
-added a table called 'local_rejections_stream'. This table is not used, and
-we drop it here for anyone who was affected.
-*/
-
-DROP TABLE IF EXISTS local_rejections_stream;
diff --git a/synapse/storage/databases/main/schema/delta/58/10federation_pos_instance_name.sql b/synapse/storage/databases/main/schema/delta/58/10federation_pos_instance_name.sql
deleted file mode 100644
index 1cc2633aad..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/10federation_pos_instance_name.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- We need to store the stream positions by instance in a sharded config world.
---
--- We default to master as we want the column to be NOT NULL and we correctly
--- reset the instance name to match the config each time we start up.
-ALTER TABLE federation_stream_position ADD COLUMN instance_name TEXT NOT NULL DEFAULT 'master';
-
-CREATE UNIQUE INDEX federation_stream_position_instance ON federation_stream_position(type, instance_name);
diff --git a/synapse/storage/databases/main/schema/delta/58/11dehydration.sql b/synapse/storage/databases/main/schema/delta/58/11dehydration.sql
deleted file mode 100644
index 7851a0a825..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/11dehydration.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE TABLE IF NOT EXISTS dehydrated_devices(
- user_id TEXT NOT NULL PRIMARY KEY,
- device_id TEXT NOT NULL,
- device_data TEXT NOT NULL -- JSON-encoded client-defined data
-);
diff --git a/synapse/storage/databases/main/schema/delta/58/11fallback.sql b/synapse/storage/databases/main/schema/delta/58/11fallback.sql
deleted file mode 100644
index 4ed981dbf8..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/11fallback.sql
+++ /dev/null
@@ -1,24 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE TABLE IF NOT EXISTS e2e_fallback_keys_json (
- user_id TEXT NOT NULL, -- The user this fallback key is for.
- device_id TEXT NOT NULL, -- The device this fallback key is for.
- algorithm TEXT NOT NULL, -- Which algorithm this fallback key is for.
- key_id TEXT NOT NULL, -- An id for suppressing duplicate uploads.
- key_json TEXT NOT NULL, -- The key as a JSON blob.
- used BOOLEAN NOT NULL DEFAULT FALSE, -- Whether the key has been used or not.
- CONSTRAINT e2e_fallback_keys_json_uniqueness UNIQUE (user_id, device_id, algorithm)
-);
diff --git a/synapse/storage/databases/main/schema/delta/58/11user_id_seq.py b/synapse/storage/databases/main/schema/delta/58/11user_id_seq.py
deleted file mode 100644
index 4310ec12ce..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/11user_id_seq.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2020 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.
-
-"""
-Adds a postgres SEQUENCE for generating guest user IDs.
-"""
-
-from synapse.storage.databases.main.registration import (
- find_max_generated_user_id_localpart,
-)
-from synapse.storage.engines import PostgresEngine
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if not isinstance(database_engine, PostgresEngine):
- return
-
- next_id = find_max_generated_user_id_localpart(cur) + 1
- cur.execute("CREATE SEQUENCE user_id_seq START WITH %s", (next_id,))
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/main/schema/delta/58/12room_stats.sql b/synapse/storage/databases/main/schema/delta/58/12room_stats.sql
deleted file mode 100644
index fd733adf13..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/12room_stats.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Recalculate the stats for all rooms after the fix to joined_members erroneously
--- incrementing on per-room profile changes.
-
--- Note that the populate_stats_process_rooms background update is already set to
--- run if you're upgrading from Synapse <1.0.0.
-
--- Additionally, if you've upgraded to v1.18.0 (which doesn't include this fix),
--- this bg job runs, and then update to v1.19.0, you'd end up with only half of
--- your rooms having room stats recalculated after this fix was in place.
-
--- So we've switched the old `populate_stats_process_rooms` background job to a
--- no-op, and then kick off a bg job with a new name, but with the same
--- functionality as the old one. This effectively restarts the background job
--- from the beginning, without running it twice in a row, supporting both
--- upgrade usecases.
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5812, 'populate_stats_process_rooms_2', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/58/13remove_presence_allow_inbound.sql b/synapse/storage/databases/main/schema/delta/58/13remove_presence_allow_inbound.sql
deleted file mode 100644
index 15421b99ac..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/13remove_presence_allow_inbound.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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 table is no longer used.
-DROP TABLE IF EXISTS presence_allow_inbound;
diff --git a/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql b/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql
deleted file mode 100644
index 98ff76d709..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2020 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.
- */
-
-ALTER TABLE events ADD COLUMN instance_name TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql.postgres b/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql.postgres
deleted file mode 100644
index c31f9af82a..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/14events_instance_name.sql.postgres
+++ /dev/null
@@ -1,28 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE SEQUENCE IF NOT EXISTS events_stream_seq;
-
-SELECT setval('events_stream_seq', (
- SELECT COALESCE(MAX(stream_ordering), 1) FROM events
-));
-
-CREATE SEQUENCE IF NOT EXISTS events_backfill_stream_seq;
-
--- If the server has never backfilled a room then doing `-MIN(...)` will give
--- a negative result, hence why we do `GREATEST(...)`
-SELECT setval('events_backfill_stream_seq', (
- SELECT GREATEST(COALESCE(-MIN(stream_ordering), 1), 1) FROM events
-));
diff --git a/synapse/storage/databases/main/schema/delta/58/15_catchup_destination_rooms.sql b/synapse/storage/databases/main/schema/delta/58/15_catchup_destination_rooms.sql
deleted file mode 100644
index ebfbed7925..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/15_catchup_destination_rooms.sql
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2020 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 schema delta alters the schema to enable 'catching up' remote homeservers
--- after there has been a connectivity problem for any reason.
-
--- This stores, for each (destination, room) pair, the stream_ordering of the
--- latest event for that destination.
-CREATE TABLE IF NOT EXISTS destination_rooms (
- -- the destination in question.
- destination TEXT NOT NULL REFERENCES destinations (destination),
- -- the ID of the room in question
- room_id TEXT NOT NULL REFERENCES rooms (room_id),
- -- the stream_ordering of the event
- stream_ordering BIGINT NOT NULL,
- PRIMARY KEY (destination, room_id)
- -- We don't declare a foreign key on stream_ordering here because that'd mean
- -- we'd need to either maintain an index (expensive) or do a table scan of
- -- destination_rooms whenever we delete an event (also potentially expensive).
- -- In addition to that, a foreign key on stream_ordering would be redundant
- -- as this row doesn't need to refer to a specific event; if the event gets
- -- deleted then it doesn't affect the validity of the stream_ordering here.
-);
-
--- This index is needed to make it so that a deletion of a room (in the rooms
--- table) can be efficient, as otherwise a table scan would need to be performed
--- to check that no destination_rooms rows point to the room to be deleted.
--- Also: it makes it efficient to delete all the entries for a given room ID,
--- such as when purging a room.
-CREATE INDEX IF NOT EXISTS destination_rooms_room_id
- ON destination_rooms (room_id);
diff --git a/synapse/storage/databases/main/schema/delta/58/15unread_count.sql b/synapse/storage/databases/main/schema/delta/58/15unread_count.sql
deleted file mode 100644
index 317fba8a5d..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/15unread_count.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- We're hijacking the push actions to store unread messages and unread counts (specified
--- in MSC2654) because doing otherwise would result in either performance issues or
--- reimplementing a consequent bit of the push actions.
-
--- Add columns to event_push_actions and event_push_actions_staging to track unread
--- messages and calculate unread counts.
-ALTER TABLE event_push_actions_staging ADD COLUMN unread SMALLINT;
-ALTER TABLE event_push_actions ADD COLUMN unread SMALLINT;
-
--- Add column to event_push_summary
-ALTER TABLE event_push_summary ADD COLUMN unread_count BIGINT;
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/58/16populate_stats_process_rooms_fix.sql b/synapse/storage/databases/main/schema/delta/58/16populate_stats_process_rooms_fix.sql
deleted file mode 100644
index 55f5d0f732..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/16populate_stats_process_rooms_fix.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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 delta file fixes a regression introduced by 58/12room_stats.sql, removing the hacky
--- populate_stats_process_rooms_2 background job and restores the functionality under the
--- original name.
--- See https://github.com/matrix-org/synapse/issues/8238 for details
-
-DELETE FROM background_updates WHERE update_name = 'populate_stats_process_rooms';
-UPDATE background_updates SET update_name = 'populate_stats_process_rooms'
- WHERE update_name = 'populate_stats_process_rooms_2';
diff --git a/synapse/storage/databases/main/schema/delta/58/17_catchup_last_successful.sql b/synapse/storage/databases/main/schema/delta/58/17_catchup_last_successful.sql
deleted file mode 100644
index a67aa5e500..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/17_catchup_last_successful.sql
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2020 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 column tracks the stream_ordering of the event that was most recently
--- successfully transmitted to the destination.
--- A value of NULL means that we have not sent an event successfully yet
--- (at least, not since the introduction of this column).
-ALTER TABLE destinations
- ADD COLUMN last_successful_stream_ordering BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/58/18stream_positions.sql b/synapse/storage/databases/main/schema/delta/58/18stream_positions.sql
deleted file mode 100644
index 985fd949a2..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/18stream_positions.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE TABLE stream_positions (
- stream_name TEXT NOT NULL,
- instance_name TEXT NOT NULL,
- stream_id BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX stream_positions_idx ON stream_positions(stream_name, instance_name);
diff --git a/synapse/storage/databases/main/schema/delta/58/19instance_map.sql.postgres b/synapse/storage/databases/main/schema/delta/58/19instance_map.sql.postgres
deleted file mode 100644
index 841186b826..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/19instance_map.sql.postgres
+++ /dev/null
@@ -1,25 +0,0 @@
-/* Copyright 2020 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.
- */
-
-
--- A unique and immutable mapping between instance name and an integer ID. This
--- lets us refer to instances via a small ID in e.g. stream tokens, without
--- having to encode the full name.
-CREATE TABLE IF NOT EXISTS instance_map (
- instance_id SERIAL PRIMARY KEY,
- instance_name TEXT NOT NULL
-);
-
-CREATE UNIQUE INDEX IF NOT EXISTS instance_map_idx ON instance_map(instance_name);
diff --git a/synapse/storage/databases/main/schema/delta/58/19txn_id.sql b/synapse/storage/databases/main/schema/delta/58/19txn_id.sql
deleted file mode 100644
index b2454121a8..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/19txn_id.sql
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2020 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.
- */
-
-
--- A map of recent events persisted with transaction IDs. Used to deduplicate
--- send event requests with the same transaction ID.
---
--- Note: transaction IDs are scoped to the room ID/user ID/access token that was
--- used to make the request.
---
--- Note: The foreign key constraints are ON DELETE CASCADE, as if we delete the
--- events or access token we don't want to try and de-duplicate the event.
-CREATE TABLE IF NOT EXISTS event_txn_id (
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- token_id BIGINT NOT NULL,
- txn_id TEXT NOT NULL,
- inserted_ts BIGINT NOT NULL,
- FOREIGN KEY (event_id)
- REFERENCES events (event_id) ON DELETE CASCADE,
- FOREIGN KEY (token_id)
- REFERENCES access_tokens (id) ON DELETE CASCADE
-);
-
-CREATE UNIQUE INDEX IF NOT EXISTS event_txn_id_event_id ON event_txn_id(event_id);
-CREATE UNIQUE INDEX IF NOT EXISTS event_txn_id_txn_id ON event_txn_id(room_id, user_id, token_id, txn_id);
-CREATE INDEX IF NOT EXISTS event_txn_id_ts ON event_txn_id(inserted_ts);
diff --git a/synapse/storage/databases/main/schema/delta/58/20instance_name_event_tables.sql b/synapse/storage/databases/main/schema/delta/58/20instance_name_event_tables.sql
deleted file mode 100644
index ad1f481428..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/20instance_name_event_tables.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
-ALTER TABLE current_state_delta_stream ADD COLUMN instance_name TEXT;
-ALTER TABLE ex_outlier_stream ADD COLUMN instance_name TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/58/20user_daily_visits.sql b/synapse/storage/databases/main/schema/delta/58/20user_daily_visits.sql
deleted file mode 100644
index b0b5dcddce..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/20user_daily_visits.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
- -- Add new column to user_daily_visits to track user agent
-ALTER TABLE user_daily_visits
- ADD COLUMN user_agent TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/58/21as_device_stream.sql b/synapse/storage/databases/main/schema/delta/58/21as_device_stream.sql
deleted file mode 100644
index 7b84a207fd..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/21as_device_stream.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
-ALTER TABLE application_services_state ADD COLUMN read_receipt_stream_id INT;
-ALTER TABLE application_services_state ADD COLUMN presence_stream_id INT;
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/58/21drop_device_max_stream_id.sql b/synapse/storage/databases/main/schema/delta/58/21drop_device_max_stream_id.sql
deleted file mode 100644
index 01ea6eddcf..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/21drop_device_max_stream_id.sql
+++ /dev/null
@@ -1 +0,0 @@
-DROP TABLE device_max_stream_id;
diff --git a/synapse/storage/databases/main/schema/delta/58/22puppet_token.sql b/synapse/storage/databases/main/schema/delta/58/22puppet_token.sql
deleted file mode 100644
index 00a9431a97..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/22puppet_token.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Whether the access token is an admin token for controlling another user.
-ALTER TABLE access_tokens ADD COLUMN puppets_user_id TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/58/22users_have_local_media.sql b/synapse/storage/databases/main/schema/delta/58/22users_have_local_media.sql
deleted file mode 100644
index e1a35be831..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/22users_have_local_media.sql
+++ /dev/null
@@ -1,2 +0,0 @@
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5822, 'users_have_local_media', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/58/23e2e_cross_signing_keys_idx.sql b/synapse/storage/databases/main/schema/delta/58/23e2e_cross_signing_keys_idx.sql
deleted file mode 100644
index 75c3915a94..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/23e2e_cross_signing_keys_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5823, 'e2e_cross_signing_keys_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/58/24drop_event_json_index.sql b/synapse/storage/databases/main/schema/delta/58/24drop_event_json_index.sql
deleted file mode 100644
index 8a39d54aed..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/24drop_event_json_index.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2020 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 index is essentially redundant. The only time it was ever used was when purging
--- rooms - and Synapse 1.24 will change that.
-
-DROP INDEX IF EXISTS event_json_room_id;
diff --git a/synapse/storage/databases/main/schema/delta/58/25user_external_ids_user_id_idx.sql b/synapse/storage/databases/main/schema/delta/58/25user_external_ids_user_id_idx.sql
deleted file mode 100644
index 8f5e65aa71..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/25user_external_ids_user_id_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5825, 'user_external_ids_user_id_idx', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/58/26access_token_last_validated.sql b/synapse/storage/databases/main/schema/delta/58/26access_token_last_validated.sql
deleted file mode 100644
index 1a101cd5eb..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/26access_token_last_validated.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- The last time this access token was "validated" (i.e. logged in or succeeded
--- at user-interactive authentication).
-ALTER TABLE access_tokens ADD COLUMN last_validated BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/58/27local_invites.sql b/synapse/storage/databases/main/schema/delta/58/27local_invites.sql
deleted file mode 100644
index 44b2a0572f..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/27local_invites.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/*
- * Copyright 2020 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 unused since Synapse v1.17.0.
-DROP TABLE local_invites;
diff --git a/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.postgres b/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.postgres
deleted file mode 100644
index de57645019..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.postgres
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2020 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.
- */
-
-ALTER TABLE access_tokens DROP COLUMN last_used;
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.sqlite b/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.sqlite
deleted file mode 100644
index ee0e3521bf..0000000000
--- a/synapse/storage/databases/main/schema/delta/58/28drop_last_used_column.sql.sqlite
+++ /dev/null
@@ -1,62 +0,0 @@
-/*
- * Copyright 2020 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.
- */
-
- -- Dropping last_used column from access_tokens table.
-
-CREATE TABLE access_tokens2 (
- id BIGINT PRIMARY KEY,
- user_id TEXT NOT NULL,
- device_id TEXT,
- token TEXT NOT NULL,
- valid_until_ms BIGINT,
- puppets_user_id TEXT,
- last_validated BIGINT,
- UNIQUE(token)
-);
-
-INSERT INTO access_tokens2(id, user_id, device_id, token)
- SELECT id, user_id, device_id, token FROM access_tokens;
-
-DROP TABLE access_tokens;
-ALTER TABLE access_tokens2 RENAME TO access_tokens;
-
-CREATE INDEX access_tokens_device_id ON access_tokens (user_id, device_id);
-
-
--- Re-adding foreign key reference in event_txn_id table
-
-CREATE TABLE event_txn_id2 (
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- token_id BIGINT NOT NULL,
- txn_id TEXT NOT NULL,
- inserted_ts BIGINT NOT NULL,
- FOREIGN KEY (event_id)
- REFERENCES events (event_id) ON DELETE CASCADE,
- FOREIGN KEY (token_id)
- REFERENCES access_tokens (id) ON DELETE CASCADE
-);
-
-INSERT INTO event_txn_id2(event_id, room_id, user_id, token_id, txn_id, inserted_ts)
- SELECT event_id, room_id, user_id, token_id, txn_id, inserted_ts FROM event_txn_id;
-
-DROP TABLE event_txn_id;
-ALTER TABLE event_txn_id2 RENAME TO event_txn_id;
-
-CREATE UNIQUE INDEX IF NOT EXISTS event_txn_id_event_id ON event_txn_id(event_id);
-CREATE UNIQUE INDEX IF NOT EXISTS event_txn_id_txn_id ON event_txn_id(room_id, user_id, token_id, txn_id);
-CREATE INDEX IF NOT EXISTS event_txn_id_ts ON event_txn_id(inserted_ts);
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/delta/59/01ignored_user.py b/synapse/storage/databases/main/schema/delta/59/01ignored_user.py
deleted file mode 100644
index 9e8f35c1d2..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/01ignored_user.py
+++ /dev/null
@@ -1,82 +0,0 @@
-# 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 migration denormalises the account_data table into an ignored users table.
-"""
-
-import logging
-from io import StringIO
-
-from synapse.storage._base import db_to_json
-from synapse.storage.engines import BaseDatabaseEngine
-from synapse.storage.prepare_database import execute_statements_from_stream
-from synapse.storage.types import Cursor
-
-logger = logging.getLogger(__name__)
-
-
-def run_upgrade(cur: Cursor, database_engine: BaseDatabaseEngine, *args, **kwargs):
- pass
-
-
-def run_create(cur: Cursor, database_engine: BaseDatabaseEngine, *args, **kwargs):
- logger.info("Creating ignored_users table")
- execute_statements_from_stream(cur, StringIO(_create_commands))
-
- # We now upgrade existing data, if any. We don't do this in `run_upgrade` as
- # we a) want to run these before adding constraints and b) `run_upgrade` is
- # not run on empty databases.
- insert_sql = """
- INSERT INTO ignored_users (ignorer_user_id, ignored_user_id) VALUES (?, ?)
- """
-
- logger.info("Converting existing ignore lists")
- cur.execute(
- "SELECT user_id, content FROM account_data WHERE account_data_type = 'm.ignored_user_list'"
- )
- for user_id, content_json in cur.fetchall():
- content = db_to_json(content_json)
-
- # The content should be the form of a dictionary with a key
- # "ignored_users" pointing to a dictionary with keys of ignored users.
- #
- # { "ignored_users": "@someone:example.org": {} }
- ignored_users = content.get("ignored_users", {})
- if isinstance(ignored_users, dict) and ignored_users:
- cur.execute_batch(insert_sql, [(user_id, u) for u in ignored_users])
-
- # Add indexes after inserting data for efficiency.
- logger.info("Adding constraints to ignored_users table")
- execute_statements_from_stream(cur, StringIO(_constraints_commands))
-
-
-# there might be duplicates, so the easiest way to achieve this is to create a new
-# table with the right data, and renaming it into place
-
-_create_commands = """
--- Users which are ignored when calculating push notifications. This data is
--- denormalized from account data.
-CREATE TABLE IF NOT EXISTS ignored_users(
- ignorer_user_id TEXT NOT NULL, -- The user ID of the user who is ignoring another user. (This is a local user.)
- ignored_user_id TEXT NOT NULL -- The user ID of the user who is being ignored. (This is a local or remote user.)
-);
-"""
-
-_constraints_commands = """
-CREATE UNIQUE INDEX ignored_users_uniqueness ON ignored_users (ignorer_user_id, ignored_user_id);
-
--- Add an index on ignored_users since look-ups are done to get all ignorers of an ignored user.
-CREATE INDEX ignored_users_ignored_user_id ON ignored_users (ignored_user_id);
-"""
diff --git a/synapse/storage/databases/main/schema/delta/59/02shard_send_to_device.sql b/synapse/storage/databases/main/schema/delta/59/02shard_send_to_device.sql
deleted file mode 100644
index d781a92fec..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/02shard_send_to_device.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* 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.
- */
-
-ALTER TABLE device_inbox ADD COLUMN instance_name TEXT;
-ALTER TABLE device_federation_inbox ADD COLUMN instance_name TEXT;
-ALTER TABLE device_federation_outbox ADD COLUMN instance_name TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/59/03shard_send_to_device_sequence.sql.postgres b/synapse/storage/databases/main/schema/delta/59/03shard_send_to_device_sequence.sql.postgres
deleted file mode 100644
index 45a845a3a5..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/03shard_send_to_device_sequence.sql.postgres
+++ /dev/null
@@ -1,25 +0,0 @@
-/* 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.
- */
-
-CREATE SEQUENCE IF NOT EXISTS device_inbox_sequence;
-
--- We need to take the max across both device_inbox and device_federation_outbox
--- tables as they share the ID generator
-SELECT setval('device_inbox_sequence', (
- SELECT GREATEST(
- (SELECT COALESCE(MAX(stream_id), 1) FROM device_inbox),
- (SELECT COALESCE(MAX(stream_id), 1) FROM device_federation_outbox)
- )
-));
diff --git a/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql b/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql
deleted file mode 100644
index 729196cfd5..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql
+++ /dev/null
@@ -1,52 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- See docs/auth_chain_difference_algorithm.md
-
-CREATE TABLE event_auth_chains (
- event_id TEXT PRIMARY KEY,
- chain_id BIGINT NOT NULL,
- sequence_number BIGINT NOT NULL
-);
-
-CREATE UNIQUE INDEX event_auth_chains_c_seq_index ON event_auth_chains (chain_id, sequence_number);
-
-
-CREATE TABLE event_auth_chain_links (
- origin_chain_id BIGINT NOT NULL,
- origin_sequence_number BIGINT NOT NULL,
-
- target_chain_id BIGINT NOT NULL,
- target_sequence_number BIGINT NOT NULL
-);
-
-
-CREATE INDEX event_auth_chain_links_idx ON event_auth_chain_links (origin_chain_id, target_chain_id);
-
-
--- Events that we have persisted but not calculated auth chains for,
--- e.g. out of band memberships (where we don't have the auth chain)
-CREATE TABLE event_auth_chain_to_calculate (
- event_id TEXT PRIMARY KEY,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL
-);
-
-CREATE INDEX event_auth_chain_to_calculate_rm_id ON event_auth_chain_to_calculate(room_id);
-
-
--- Whether we've calculated the above index for a room.
-ALTER TABLE rooms ADD COLUMN has_auth_chain_index BOOLEAN;
diff --git a/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql.postgres b/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql.postgres
deleted file mode 100644
index e8a035bbeb..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/04_event_auth_chains.sql.postgres
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2020 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.
- */
-
-CREATE SEQUENCE IF NOT EXISTS event_auth_chain_id;
diff --git a/synapse/storage/databases/main/schema/delta/59/04drop_account_data.sql b/synapse/storage/databases/main/schema/delta/59/04drop_account_data.sql
deleted file mode 100644
index 64ab696cfe..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/04drop_account_data.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 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;
diff --git a/synapse/storage/databases/main/schema/delta/59/05cache_invalidation.sql b/synapse/storage/databases/main/schema/delta/59/05cache_invalidation.sql
deleted file mode 100644
index fb71b360a0..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/05cache_invalidation.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 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;
diff --git a/synapse/storage/databases/main/schema/delta/59/06chain_cover_index.sql b/synapse/storage/databases/main/schema/delta/59/06chain_cover_index.sql
deleted file mode 100644
index fe3dca71dd..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/06chain_cover_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2020 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.
- */
-
-INSERT INTO background_updates (ordering, update_name, progress_json, depends_on) VALUES
- (5906, 'chain_cover', '{}', 'rejected_events_metadata');
diff --git a/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql b/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql
deleted file mode 100644
index 46abf8d562..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-ALTER TABLE room_account_data ADD COLUMN instance_name TEXT;
-ALTER TABLE room_tags_revisions ADD COLUMN instance_name TEXT;
-ALTER TABLE account_data ADD COLUMN instance_name TEXT;
-
-ALTER TABLE receipts_linearized ADD COLUMN instance_name TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql.postgres b/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql.postgres
deleted file mode 100644
index 4a6e6c74f5..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/06shard_account_data.sql.postgres
+++ /dev/null
@@ -1,32 +0,0 @@
-/* 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.
- */
-
-CREATE SEQUENCE IF NOT EXISTS account_data_sequence;
-
--- We need to take the max across all the account_data tables as they share the
--- ID generator
-SELECT setval('account_data_sequence', (
- SELECT GREATEST(
- (SELECT COALESCE(MAX(stream_id), 1) FROM room_account_data),
- (SELECT COALESCE(MAX(stream_id), 1) FROM room_tags_revisions),
- (SELECT COALESCE(MAX(stream_id), 1) FROM account_data)
- )
-));
-
-CREATE SEQUENCE IF NOT EXISTS receipts_sequence;
-
-SELECT setval('receipts_sequence', (
- SELECT COALESCE(MAX(stream_id), 1) FROM receipts_linearized
-));
diff --git a/synapse/storage/databases/main/schema/delta/59/07shard_account_data_fix.sql b/synapse/storage/databases/main/schema/delta/59/07shard_account_data_fix.sql
deleted file mode 100644
index 9f2b5ebc5a..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/07shard_account_data_fix.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* 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.
- */
-
--- We incorrectly populated these, so we delete them and let the
--- MultiWriterIdGenerator repopulate it.
-DELETE FROM stream_positions WHERE stream_name = 'receipts' OR stream_name = 'account_data';
diff --git a/synapse/storage/databases/main/schema/delta/59/08delete_pushers_for_deactivated_accounts.sql b/synapse/storage/databases/main/schema/delta/59/08delete_pushers_for_deactivated_accounts.sql
deleted file mode 100644
index 0ec6764150..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/08delete_pushers_for_deactivated_accounts.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-
--- We may not have deleted all pushers for deactivated accounts, so we set up a
--- background job to delete them.
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5908, 'remove_deactivated_pushers', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/59/08delete_stale_pushers.sql b/synapse/storage/databases/main/schema/delta/59/08delete_stale_pushers.sql
deleted file mode 100644
index 85196db288..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/08delete_stale_pushers.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-
--- Delete all pushers associated with deleted devices. This is to clear up after
--- a bug where they weren't correctly deleted when using workers.
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5908, 'remove_stale_pushers', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/59/09rejected_events_metadata.sql b/synapse/storage/databases/main/schema/delta/59/09rejected_events_metadata.sql
deleted file mode 100644
index cc9b267c7d..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/09rejected_events_metadata.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2020 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 originally was in 58/, but landed after 59/ was created, and so some
--- servers running develop didn't run this delta. Running it again should be
--- safe.
---
--- We first delete any in progress `rejected_events_metadata` background update,
--- to ensure that we don't conflict when trying to insert the new one. (We could
--- alternatively do an ON CONFLICT DO NOTHING, but that syntax isn't supported
--- by older SQLite versions. Plus, this should be a rare case).
-DELETE FROM background_updates WHERE update_name = 'rejected_events_metadata';
-INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5828, 'rejected_events_metadata', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/59/10delete_purged_chain_cover.sql b/synapse/storage/databases/main/schema/delta/59/10delete_purged_chain_cover.sql
deleted file mode 100644
index 87cb1f3cfd..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/10delete_purged_chain_cover.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* 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.
- */
-
- INSERT INTO background_updates (ordering, update_name, progress_json) VALUES
- (5910, 'purged_chain_cover', '{}');
diff --git a/synapse/storage/databases/main/schema/delta/59/11drop_thumbnail_constraint.sql.postgres b/synapse/storage/databases/main/schema/delta/59/11drop_thumbnail_constraint.sql.postgres
deleted file mode 100644
index 54c1bca3b1..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/11drop_thumbnail_constraint.sql.postgres
+++ /dev/null
@@ -1,22 +0,0 @@
-/* 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.
- */
-
--- drop old constraints on remote_media_cache_thumbnails
---
--- This was originally part of 57.07, but it was done wrong, per
--- https://github.com/matrix-org/synapse/issues/8649, so we do it again.
-INSERT INTO background_updates (ordering, update_name, progress_json, depends_on) VALUES
- (5911, 'media_repository_drop_index_wo_method_2', '{}', 'remote_media_repository_thumbnails_method_idx');
-
diff --git a/synapse/storage/databases/main/schema/delta/59/12account_validity_token_used_ts_ms.sql b/synapse/storage/databases/main/schema/delta/59/12account_validity_token_used_ts_ms.sql
deleted file mode 100644
index 4836dac16e..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/12account_validity_token_used_ts_ms.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* Copyright 2020 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.
- */
-
--- Track when users renew their account using the value of the 'renewal_token' column.
--- This field should be set to NULL after a fresh token is generated.
-ALTER TABLE account_validity ADD token_used_ts_ms BIGINT;
diff --git a/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance.sql b/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance.sql
deleted file mode 100644
index b6ba0bda1a..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance.sql
+++ /dev/null
@@ -1,18 +0,0 @@
-/* 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.
- */
-
--- Add a column to specify which instance wrote the row. Historic rows have
--- `NULL`, which indicates that the master instance wrote them.
-ALTER TABLE presence_stream ADD COLUMN instance_name TEXT;
diff --git a/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance_seq.sql.postgres b/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance_seq.sql.postgres
deleted file mode 100644
index 02b182adf9..0000000000
--- a/synapse/storage/databases/main/schema/delta/59/12presence_stream_instance_seq.sql.postgres
+++ /dev/null
@@ -1,20 +0,0 @@
-/* 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.
- */
-
-CREATE SEQUENCE IF NOT EXISTS presence_stream_sequence;
-
-SELECT setval('presence_stream_sequence', (
- SELECT COALESCE(MAX(stream_id), 1) FROM presence_stream
-));
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/application_services.sql b/synapse/storage/databases/main/schema/full_schemas/16/application_services.sql
deleted file mode 100644
index 883fcd10b2..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/application_services.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/* We used to create tables called application_services and
- * application_services_regex, but these are no longer used and are removed in
- * delta 54.
- */
-
-
-CREATE TABLE IF NOT EXISTS application_services_state(
- as_id TEXT PRIMARY KEY,
- state VARCHAR(5),
- last_txn INTEGER
-);
-
-CREATE TABLE IF NOT EXISTS application_services_txns(
- as_id TEXT NOT NULL,
- txn_id INTEGER NOT NULL,
- event_ids TEXT NOT NULL,
- UNIQUE(as_id, txn_id)
-);
-
-CREATE INDEX application_services_txns_id ON application_services_txns (
- as_id
-);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/event_edges.sql b/synapse/storage/databases/main/schema/full_schemas/16/event_edges.sql
deleted file mode 100644
index 10ce2aa7a0..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/event_edges.sql
+++ /dev/null
@@ -1,70 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/* We used to create tables called event_destinations and
- * state_forward_extremities, but these are no longer used and are removed in
- * delta 54.
- */
-
-CREATE TABLE IF NOT EXISTS event_forward_extremities(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- UNIQUE (event_id, room_id)
-);
-
-CREATE INDEX ev_extrem_room ON event_forward_extremities(room_id);
-CREATE INDEX ev_extrem_id ON event_forward_extremities(event_id);
-
-
-CREATE TABLE IF NOT EXISTS event_backward_extremities(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- UNIQUE (event_id, room_id)
-);
-
-CREATE INDEX ev_b_extrem_room ON event_backward_extremities(room_id);
-CREATE INDEX ev_b_extrem_id ON event_backward_extremities(event_id);
-
-
-CREATE TABLE IF NOT EXISTS event_edges(
- event_id TEXT NOT NULL,
- prev_event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- is_state BOOL NOT NULL, -- true if this is a prev_state edge rather than a regular
- -- event dag edge.
- UNIQUE (event_id, prev_event_id, room_id, is_state)
-);
-
-CREATE INDEX ev_edges_id ON event_edges(event_id);
-CREATE INDEX ev_edges_prev_id ON event_edges(prev_event_id);
-
-
-CREATE TABLE IF NOT EXISTS room_depth(
- room_id TEXT NOT NULL,
- min_depth INTEGER NOT NULL,
- UNIQUE (room_id)
-);
-
-CREATE INDEX room_depth_room ON room_depth(room_id);
-
-CREATE TABLE IF NOT EXISTS event_auth(
- event_id TEXT NOT NULL,
- auth_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- UNIQUE (event_id, auth_id, room_id)
-);
-
-CREATE INDEX evauth_edges_id ON event_auth(event_id);
-CREATE INDEX evauth_edges_auth_id ON event_auth(auth_id);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/event_signatures.sql b/synapse/storage/databases/main/schema/full_schemas/16/event_signatures.sql
deleted file mode 100644
index 95826da431..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/event_signatures.sql
+++ /dev/null
@@ -1,38 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
- /* We used to create tables called event_content_hashes and event_edge_hashes,
- * but these are no longer used and are removed in delta 54.
- */
-
-CREATE TABLE IF NOT EXISTS event_reference_hashes (
- event_id TEXT,
- algorithm TEXT,
- hash bytea,
- UNIQUE (event_id, algorithm)
-);
-
-CREATE INDEX event_reference_hashes_id ON event_reference_hashes(event_id);
-
-
-CREATE TABLE IF NOT EXISTS event_signatures (
- event_id TEXT,
- signature_name TEXT,
- key_id TEXT,
- signature bytea,
- UNIQUE (event_id, signature_name, key_id)
-);
-
-CREATE INDEX event_signatures_id ON event_signatures(event_id);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/im.sql b/synapse/storage/databases/main/schema/full_schemas/16/im.sql
deleted file mode 100644
index a1a2aa8e5b..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/im.sql
+++ /dev/null
@@ -1,120 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
-/* We used to create tables called room_hosts and feedback,
- * but these are no longer used and are removed in delta 54.
- */
-
-CREATE TABLE IF NOT EXISTS events(
- stream_ordering INTEGER PRIMARY KEY,
- topological_ordering BIGINT NOT NULL,
- event_id TEXT NOT NULL,
- type TEXT NOT NULL,
- room_id TEXT NOT NULL,
-
- -- 'content' used to be created NULLable, but as of delta 50 we drop that constraint.
- -- the hack we use to drop the constraint doesn't work for an in-memory sqlite
- -- database, which breaks the sytests. Hence, we no longer make it nullable.
- content TEXT,
-
- unrecognized_keys TEXT,
- processed BOOL NOT NULL,
- outlier BOOL NOT NULL,
- depth BIGINT DEFAULT 0 NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX events_stream_ordering ON events (stream_ordering);
-CREATE INDEX events_topological_ordering ON events (topological_ordering);
-CREATE INDEX events_order ON events (topological_ordering, stream_ordering);
-CREATE INDEX events_room_id ON events (room_id);
-CREATE INDEX events_order_room ON events (
- room_id, topological_ordering, stream_ordering
-);
-
-
-CREATE TABLE IF NOT EXISTS event_json(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- internal_metadata TEXT NOT NULL,
- json TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX event_json_room_id ON event_json(room_id);
-
-
-CREATE TABLE IF NOT EXISTS state_events(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL,
- prev_state TEXT,
- UNIQUE (event_id)
-);
-
-CREATE INDEX state_events_room_id ON state_events (room_id);
-CREATE INDEX state_events_type ON state_events (type);
-CREATE INDEX state_events_state_key ON state_events (state_key);
-
-
-CREATE TABLE IF NOT EXISTS current_state_events(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL,
- UNIQUE (event_id),
- UNIQUE (room_id, type, state_key)
-);
-
-CREATE INDEX current_state_events_room_id ON current_state_events (room_id);
-CREATE INDEX current_state_events_type ON current_state_events (type);
-CREATE INDEX current_state_events_state_key ON current_state_events (state_key);
-
-CREATE TABLE IF NOT EXISTS room_memberships(
- event_id TEXT NOT NULL,
- user_id TEXT NOT NULL,
- sender TEXT NOT NULL,
- room_id TEXT NOT NULL,
- membership TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX room_memberships_room_id ON room_memberships (room_id);
-CREATE INDEX room_memberships_user_id ON room_memberships (user_id);
-
-CREATE TABLE IF NOT EXISTS topics(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- topic TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX topics_room_id ON topics(room_id);
-
-CREATE TABLE IF NOT EXISTS room_names(
- event_id TEXT NOT NULL,
- room_id TEXT NOT NULL,
- name TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX room_names_room_id ON room_names(room_id);
-
-CREATE TABLE IF NOT EXISTS rooms(
- room_id TEXT PRIMARY KEY NOT NULL,
- is_public BOOL,
- creator TEXT
-);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/keys.sql b/synapse/storage/databases/main/schema/full_schemas/16/keys.sql
deleted file mode 100644
index 11cdffdbb3..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/keys.sql
+++ /dev/null
@@ -1,26 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
--- we used to create a table called server_tls_certificates, but this is no
--- longer used, and is removed in delta 54.
-
-CREATE TABLE IF NOT EXISTS server_signature_keys(
- server_name TEXT, -- Server name.
- key_id TEXT, -- Key version.
- from_server TEXT, -- Which key server the key was fetched form.
- ts_added_ms BIGINT, -- When the key was added.
- verify_key bytea, -- NACL verification key.
- UNIQUE (server_name, key_id)
-);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/media_repository.sql b/synapse/storage/databases/main/schema/full_schemas/16/media_repository.sql
deleted file mode 100644
index 8f3759bb2a..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/media_repository.sql
+++ /dev/null
@@ -1,68 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS local_media_repository (
- media_id TEXT, -- The id used to refer to the media.
- media_type TEXT, -- The MIME-type of the media.
- media_length INTEGER, -- Length of the media in bytes.
- created_ts BIGINT, -- When the content was uploaded in ms.
- upload_name TEXT, -- The name the media was uploaded with.
- user_id TEXT, -- The user who uploaded the file.
- UNIQUE (media_id)
-);
-
-CREATE TABLE IF NOT EXISTS local_media_repository_thumbnails (
- media_id TEXT, -- The id used to refer to the media.
- thumbnail_width INTEGER, -- The width of the thumbnail in pixels.
- thumbnail_height INTEGER, -- The height of the thumbnail in pixels.
- thumbnail_type TEXT, -- The MIME-type of the thumbnail.
- thumbnail_method TEXT, -- The method used to make the thumbnail.
- thumbnail_length INTEGER, -- The length of the thumbnail in bytes.
- UNIQUE (
- media_id, thumbnail_width, thumbnail_height, thumbnail_type
- )
-);
-
-CREATE INDEX local_media_repository_thumbnails_media_id
- ON local_media_repository_thumbnails (media_id);
-
-CREATE TABLE IF NOT EXISTS remote_media_cache (
- media_origin TEXT, -- The remote HS the media came from.
- media_id TEXT, -- The id used to refer to the media on that server.
- media_type TEXT, -- The MIME-type of the media.
- created_ts BIGINT, -- When the content was uploaded in ms.
- upload_name TEXT, -- The name the media was uploaded with.
- media_length INTEGER, -- Length of the media in bytes.
- filesystem_id TEXT, -- The name used to store the media on disk.
- UNIQUE (media_origin, media_id)
-);
-
-CREATE TABLE IF NOT EXISTS remote_media_cache_thumbnails (
- media_origin TEXT, -- The remote HS the media came from.
- media_id TEXT, -- The id used to refer to the media.
- thumbnail_width INTEGER, -- The width of the thumbnail in pixels.
- thumbnail_height INTEGER, -- The height of the thumbnail in pixels.
- thumbnail_method TEXT, -- The method used to make the thumbnail
- thumbnail_type TEXT, -- The MIME-type of the thumbnail.
- thumbnail_length INTEGER, -- The length of the thumbnail in bytes.
- filesystem_id TEXT, -- The name used to store the media on disk.
- UNIQUE (
- media_origin, media_id, thumbnail_width, thumbnail_height,
- thumbnail_type
- )
-);
-
-CREATE INDEX remote_media_cache_thumbnails_media_id
- ON remote_media_cache_thumbnails (media_id);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/presence.sql b/synapse/storage/databases/main/schema/full_schemas/16/presence.sql
deleted file mode 100644
index 01d2d8f833..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/presence.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-CREATE TABLE IF NOT EXISTS presence(
- user_id TEXT NOT NULL,
- state VARCHAR(20),
- status_msg TEXT,
- mtime BIGINT, -- miliseconds since last state change
- UNIQUE (user_id)
-);
-
--- For each of /my/ users which possibly-remote users are allowed to see their
--- presence state
-CREATE TABLE IF NOT EXISTS presence_allow_inbound(
- observed_user_id TEXT NOT NULL,
- observer_user_id TEXT NOT NULL, -- a UserID,
- UNIQUE (observed_user_id, observer_user_id)
-);
-
--- We used to create a table called presence_list, but this is no longer used
--- and is removed in delta 54.
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/profiles.sql b/synapse/storage/databases/main/schema/full_schemas/16/profiles.sql
deleted file mode 100644
index c04f4747d9..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/profiles.sql
+++ /dev/null
@@ -1,20 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-CREATE TABLE IF NOT EXISTS profiles(
- user_id TEXT NOT NULL,
- displayname TEXT,
- avatar_url TEXT,
- UNIQUE(user_id)
-);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/push.sql b/synapse/storage/databases/main/schema/full_schemas/16/push.sql
deleted file mode 100644
index e44465cf45..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/push.sql
+++ /dev/null
@@ -1,74 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS rejections(
- event_id TEXT NOT NULL,
- reason TEXT NOT NULL,
- last_check TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
--- Push notification endpoints that users have configured
-CREATE TABLE IF NOT EXISTS pushers (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- access_token BIGINT DEFAULT NULL,
- profile_tag VARCHAR(32) NOT NULL,
- kind VARCHAR(8) NOT NULL,
- app_id VARCHAR(64) NOT NULL,
- app_display_name VARCHAR(64) NOT NULL,
- device_display_name VARCHAR(128) NOT NULL,
- pushkey bytea NOT NULL,
- ts BIGINT NOT NULL,
- lang VARCHAR(8),
- data bytea,
- last_token TEXT,
- last_success BIGINT,
- failing_since BIGINT,
- UNIQUE (app_id, pushkey)
-);
-
-CREATE TABLE IF NOT EXISTS push_rules (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- rule_id TEXT NOT NULL,
- priority_class SMALLINT NOT NULL,
- priority INTEGER NOT NULL DEFAULT 0,
- conditions TEXT NOT NULL,
- actions TEXT NOT NULL,
- UNIQUE(user_name, rule_id)
-);
-
-CREATE INDEX push_rules_user_name on push_rules (user_name);
-
-CREATE TABLE IF NOT EXISTS user_filters(
- user_id TEXT,
- filter_id BIGINT,
- filter_json bytea
-);
-
-CREATE INDEX user_filters_by_user_id_filter_id ON user_filters(
- user_id, filter_id
-);
-
-CREATE TABLE IF NOT EXISTS push_rules_enable (
- id BIGINT PRIMARY KEY,
- user_name TEXT NOT NULL,
- rule_id TEXT NOT NULL,
- enabled SMALLINT,
- UNIQUE(user_name, rule_id)
-);
-
-CREATE INDEX push_rules_enable_user_name on push_rules_enable (user_name);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/redactions.sql b/synapse/storage/databases/main/schema/full_schemas/16/redactions.sql
deleted file mode 100644
index 318f0d9aa5..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/redactions.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-CREATE TABLE IF NOT EXISTS redactions (
- event_id TEXT NOT NULL,
- redacts TEXT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX redactions_event_id ON redactions (event_id);
-CREATE INDEX redactions_redacts ON redactions (redacts);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/room_aliases.sql b/synapse/storage/databases/main/schema/full_schemas/16/room_aliases.sql
deleted file mode 100644
index d47da3b12f..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/room_aliases.sql
+++ /dev/null
@@ -1,29 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS room_aliases(
- room_alias TEXT NOT NULL,
- room_id TEXT NOT NULL,
- UNIQUE (room_alias)
-);
-
-CREATE INDEX room_aliases_id ON room_aliases(room_id);
-
-CREATE TABLE IF NOT EXISTS room_alias_servers(
- room_alias TEXT NOT NULL,
- server TEXT NOT NULL
-);
-
-CREATE INDEX room_alias_servers_alias ON room_alias_servers(room_alias);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/state.sql b/synapse/storage/databases/main/schema/full_schemas/16/state.sql
deleted file mode 100644
index 96391a8f0e..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/state.sql
+++ /dev/null
@@ -1,40 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE IF NOT EXISTS state_groups(
- id BIGINT PRIMARY KEY,
- room_id TEXT NOT NULL,
- event_id TEXT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS state_groups_state(
- state_group BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL,
- event_id TEXT NOT NULL
-);
-
-CREATE TABLE IF NOT EXISTS event_to_state_groups(
- event_id TEXT NOT NULL,
- state_group BIGINT NOT NULL,
- UNIQUE (event_id)
-);
-
-CREATE INDEX state_groups_id ON state_groups(id);
-
-CREATE INDEX state_groups_state_id ON state_groups_state(state_group);
-CREATE INDEX state_groups_state_tuple ON state_groups_state(room_id, type, state_key);
-CREATE INDEX event_to_state_groups_id ON event_to_state_groups(event_id);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/transactions.sql b/synapse/storage/databases/main/schema/full_schemas/16/transactions.sql
deleted file mode 100644
index 17e67bedac..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/transactions.sql
+++ /dev/null
@@ -1,44 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
--- Stores what transaction ids we have received and what our response was
-CREATE TABLE IF NOT EXISTS received_transactions(
- transaction_id TEXT,
- origin TEXT,
- ts BIGINT,
- response_code INTEGER,
- response_json bytea,
- has_been_referenced smallint default 0, -- Whether thishas been referenced by a prev_tx
- UNIQUE (transaction_id, origin)
-);
-
-CREATE INDEX transactions_have_ref ON received_transactions(origin, has_been_referenced);-- WHERE has_been_referenced = 0;
-
--- For sent transactions only.
-CREATE TABLE IF NOT EXISTS transaction_id_to_pdu(
- transaction_id INTEGER,
- destination TEXT,
- pdu_id TEXT,
- pdu_origin TEXT,
- UNIQUE (transaction_id, destination)
-);
-
-CREATE INDEX transaction_id_to_pdu_dest ON transaction_id_to_pdu(destination);
-
--- To track destination health
-CREATE TABLE IF NOT EXISTS destinations(
- destination TEXT PRIMARY KEY,
- retry_last_ts BIGINT,
- retry_interval INTEGER
-);
diff --git a/synapse/storage/databases/main/schema/full_schemas/16/users.sql b/synapse/storage/databases/main/schema/full_schemas/16/users.sql
deleted file mode 100644
index f013aa8b18..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/16/users.sql
+++ /dev/null
@@ -1,42 +0,0 @@
-/* Copyright 2014-2016 OpenMarket Ltd
- *
- * 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.
- */
-CREATE TABLE IF NOT EXISTS users(
- name TEXT,
- password_hash TEXT,
- creation_ts BIGINT,
- admin SMALLINT DEFAULT 0 NOT NULL,
- UNIQUE(name)
-);
-
-CREATE TABLE IF NOT EXISTS access_tokens(
- id BIGINT PRIMARY KEY,
- user_id TEXT NOT NULL,
- device_id TEXT,
- token TEXT NOT NULL,
- last_used BIGINT,
- UNIQUE(token)
-);
-
-CREATE TABLE IF NOT EXISTS user_ips (
- user_id TEXT NOT NULL,
- access_token TEXT NOT NULL,
- device_id TEXT,
- ip TEXT NOT NULL,
- user_agent TEXT NOT NULL,
- last_seen BIGINT NOT NULL
-);
-
-CREATE INDEX user_ips_user ON user_ips(user_id);
-CREATE INDEX user_ips_user_ip ON user_ips(user_id, access_token, ip);
diff --git a/synapse/storage/databases/main/schema/full_schemas/54/full.sql.postgres b/synapse/storage/databases/main/schema/full_schemas/54/full.sql.postgres
deleted file mode 100644
index 889a9a0ce4..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/54/full.sql.postgres
+++ /dev/null
@@ -1,1983 +0,0 @@
-
-
-
-
-
-CREATE TABLE access_tokens (
- id bigint NOT NULL,
- user_id text NOT NULL,
- device_id text,
- token text NOT NULL,
- last_used bigint
-);
-
-
-
-CREATE TABLE account_data (
- user_id text NOT NULL,
- account_data_type text NOT NULL,
- stream_id bigint NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE account_data_max_stream_id (
- lock character(1) DEFAULT 'X'::bpchar NOT NULL,
- stream_id bigint NOT NULL,
- CONSTRAINT private_user_data_max_stream_id_lock_check CHECK ((lock = 'X'::bpchar))
-);
-
-
-
-CREATE TABLE account_validity (
- user_id text NOT NULL,
- expiration_ts_ms bigint NOT NULL,
- email_sent boolean NOT NULL,
- renewal_token text
-);
-
-
-
-CREATE TABLE application_services_state (
- as_id text NOT NULL,
- state character varying(5),
- last_txn integer
-);
-
-
-
-CREATE TABLE application_services_txns (
- as_id text NOT NULL,
- txn_id integer NOT NULL,
- event_ids text NOT NULL
-);
-
-
-
-CREATE TABLE appservice_room_list (
- appservice_id text NOT NULL,
- network_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-CREATE TABLE appservice_stream_position (
- lock character(1) DEFAULT 'X'::bpchar NOT NULL,
- stream_ordering bigint,
- CONSTRAINT appservice_stream_position_lock_check CHECK ((lock = 'X'::bpchar))
-);
-
-
-CREATE TABLE blocked_rooms (
- room_id text NOT NULL,
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE cache_invalidation_stream (
- stream_id bigint,
- cache_func text,
- keys text[],
- invalidation_ts bigint
-);
-
-
-
-CREATE TABLE current_state_delta_stream (
- stream_id bigint NOT NULL,
- room_id text NOT NULL,
- type text NOT NULL,
- state_key text NOT NULL,
- event_id text,
- prev_event_id text
-);
-
-
-
-CREATE TABLE current_state_events (
- event_id text NOT NULL,
- room_id text NOT NULL,
- type text NOT NULL,
- state_key text NOT NULL
-);
-
-
-
-CREATE TABLE deleted_pushers (
- stream_id bigint NOT NULL,
- app_id text NOT NULL,
- pushkey text NOT NULL,
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE destinations (
- destination text NOT NULL,
- retry_last_ts bigint,
- retry_interval integer
-);
-
-
-
-CREATE TABLE device_federation_inbox (
- origin text NOT NULL,
- message_id text NOT NULL,
- received_ts bigint NOT NULL
-);
-
-
-
-CREATE TABLE device_federation_outbox (
- destination text NOT NULL,
- stream_id bigint NOT NULL,
- queued_ts bigint NOT NULL,
- messages_json text NOT NULL
-);
-
-
-
-CREATE TABLE device_inbox (
- user_id text NOT NULL,
- device_id text NOT NULL,
- stream_id bigint NOT NULL,
- message_json text NOT NULL
-);
-
-
-
-CREATE TABLE device_lists_outbound_last_success (
- destination text NOT NULL,
- user_id text NOT NULL,
- stream_id bigint NOT NULL
-);
-
-
-
-CREATE TABLE device_lists_outbound_pokes (
- destination text NOT NULL,
- stream_id bigint NOT NULL,
- user_id text NOT NULL,
- device_id text NOT NULL,
- sent boolean NOT NULL,
- ts bigint NOT NULL
-);
-
-
-
-CREATE TABLE device_lists_remote_cache (
- user_id text NOT NULL,
- device_id text NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE device_lists_remote_extremeties (
- user_id text NOT NULL,
- stream_id text NOT NULL
-);
-
-
-
-CREATE TABLE device_lists_stream (
- stream_id bigint NOT NULL,
- user_id text NOT NULL,
- device_id text NOT NULL
-);
-
-
-
-CREATE TABLE device_max_stream_id (
- stream_id bigint NOT NULL
-);
-
-
-
-CREATE TABLE devices (
- user_id text NOT NULL,
- device_id text NOT NULL,
- display_name text
-);
-
-
-
-CREATE TABLE e2e_device_keys_json (
- user_id text NOT NULL,
- device_id text NOT NULL,
- ts_added_ms bigint NOT NULL,
- key_json text NOT NULL
-);
-
-
-
-CREATE TABLE e2e_one_time_keys_json (
- user_id text NOT NULL,
- device_id text NOT NULL,
- algorithm text NOT NULL,
- key_id text NOT NULL,
- ts_added_ms bigint NOT NULL,
- key_json text NOT NULL
-);
-
-
-
-CREATE TABLE e2e_room_keys (
- user_id text NOT NULL,
- room_id text NOT NULL,
- session_id text NOT NULL,
- version bigint NOT NULL,
- first_message_index integer,
- forwarded_count integer,
- is_verified boolean,
- session_data text NOT NULL
-);
-
-
-
-CREATE TABLE e2e_room_keys_versions (
- user_id text NOT NULL,
- version bigint NOT NULL,
- algorithm text NOT NULL,
- auth_data text NOT NULL,
- deleted smallint DEFAULT 0 NOT NULL
-);
-
-
-
-CREATE TABLE erased_users (
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE event_auth (
- event_id text NOT NULL,
- auth_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-CREATE TABLE event_backward_extremities (
- event_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-CREATE TABLE event_edges (
- event_id text NOT NULL,
- prev_event_id text NOT NULL,
- room_id text NOT NULL,
- is_state boolean NOT NULL
-);
-
-
-
-CREATE TABLE event_forward_extremities (
- event_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-CREATE TABLE event_json (
- event_id text NOT NULL,
- room_id text NOT NULL,
- internal_metadata text NOT NULL,
- json text NOT NULL,
- format_version integer
-);
-
-
-
-CREATE TABLE event_push_actions (
- room_id text NOT NULL,
- event_id text NOT NULL,
- user_id text NOT NULL,
- profile_tag character varying(32),
- actions text NOT NULL,
- topological_ordering bigint,
- stream_ordering bigint,
- notif smallint,
- highlight smallint
-);
-
-
-
-CREATE TABLE event_push_actions_staging (
- event_id text NOT NULL,
- user_id text NOT NULL,
- actions text NOT NULL,
- notif smallint NOT NULL,
- highlight smallint NOT NULL
-);
-
-
-
-CREATE TABLE event_push_summary (
- user_id text NOT NULL,
- room_id text NOT NULL,
- notif_count bigint NOT NULL,
- stream_ordering bigint NOT NULL
-);
-
-
-
-CREATE TABLE event_push_summary_stream_ordering (
- lock character(1) DEFAULT 'X'::bpchar NOT NULL,
- stream_ordering bigint NOT NULL,
- CONSTRAINT event_push_summary_stream_ordering_lock_check CHECK ((lock = 'X'::bpchar))
-);
-
-
-
-CREATE TABLE event_reference_hashes (
- event_id text,
- algorithm text,
- hash bytea
-);
-
-
-
-CREATE TABLE event_relations (
- event_id text NOT NULL,
- relates_to_id text NOT NULL,
- relation_type text NOT NULL,
- aggregation_key text
-);
-
-
-
-CREATE TABLE event_reports (
- id bigint NOT NULL,
- received_ts bigint NOT NULL,
- room_id text NOT NULL,
- event_id text NOT NULL,
- user_id text NOT NULL,
- reason text,
- content text
-);
-
-
-
-CREATE TABLE event_search (
- event_id text,
- room_id text,
- sender text,
- key text,
- vector tsvector,
- origin_server_ts bigint,
- stream_ordering bigint
-);
-
-
-
-CREATE TABLE event_to_state_groups (
- event_id text NOT NULL,
- state_group bigint NOT NULL
-);
-
-
-
-CREATE TABLE events (
- stream_ordering integer NOT NULL,
- topological_ordering bigint NOT NULL,
- event_id text NOT NULL,
- type text NOT NULL,
- room_id text NOT NULL,
- content text,
- unrecognized_keys text,
- processed boolean NOT NULL,
- outlier boolean NOT NULL,
- depth bigint DEFAULT 0 NOT NULL,
- origin_server_ts bigint,
- received_ts bigint,
- sender text,
- contains_url boolean
-);
-
-
-
-CREATE TABLE ex_outlier_stream (
- event_stream_ordering bigint NOT NULL,
- event_id text NOT NULL,
- state_group bigint NOT NULL
-);
-
-
-
-CREATE TABLE federation_stream_position (
- type text NOT NULL,
- stream_id integer NOT NULL
-);
-
-
-
-CREATE TABLE group_attestations_remote (
- group_id text NOT NULL,
- user_id text NOT NULL,
- valid_until_ms bigint NOT NULL,
- attestation_json text NOT NULL
-);
-
-
-
-CREATE TABLE group_attestations_renewals (
- group_id text NOT NULL,
- user_id text NOT NULL,
- valid_until_ms bigint NOT NULL
-);
-
-
-
-CREATE TABLE group_invites (
- group_id text NOT NULL,
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE group_roles (
- group_id text NOT NULL,
- role_id text NOT NULL,
- profile text NOT NULL,
- is_public boolean NOT NULL
-);
-
-
-
-CREATE TABLE group_room_categories (
- group_id text NOT NULL,
- category_id text NOT NULL,
- profile text NOT NULL,
- is_public boolean NOT NULL
-);
-
-
-
-CREATE TABLE group_rooms (
- group_id text NOT NULL,
- room_id text NOT NULL,
- is_public boolean NOT NULL
-);
-
-
-
-CREATE TABLE group_summary_roles (
- group_id text NOT NULL,
- role_id text NOT NULL,
- role_order bigint NOT NULL,
- CONSTRAINT group_summary_roles_role_order_check CHECK ((role_order > 0))
-);
-
-
-
-CREATE TABLE group_summary_room_categories (
- group_id text NOT NULL,
- category_id text NOT NULL,
- cat_order bigint NOT NULL,
- CONSTRAINT group_summary_room_categories_cat_order_check CHECK ((cat_order > 0))
-);
-
-
-
-CREATE TABLE group_summary_rooms (
- group_id text NOT NULL,
- room_id text NOT NULL,
- category_id text NOT NULL,
- room_order bigint NOT NULL,
- is_public boolean NOT NULL,
- CONSTRAINT group_summary_rooms_room_order_check CHECK ((room_order > 0))
-);
-
-
-
-CREATE TABLE group_summary_users (
- group_id text NOT NULL,
- user_id text NOT NULL,
- role_id text NOT NULL,
- user_order bigint NOT NULL,
- is_public boolean NOT NULL
-);
-
-
-
-CREATE TABLE group_users (
- group_id text NOT NULL,
- user_id text NOT NULL,
- is_admin boolean NOT NULL,
- is_public boolean NOT NULL
-);
-
-
-
-CREATE TABLE groups (
- group_id text NOT NULL,
- name text,
- avatar_url text,
- short_description text,
- long_description text,
- is_public boolean NOT NULL,
- join_policy text DEFAULT 'invite'::text NOT NULL
-);
-
-
-
-CREATE TABLE guest_access (
- event_id text NOT NULL,
- room_id text NOT NULL,
- guest_access text NOT NULL
-);
-
-
-
-CREATE TABLE history_visibility (
- event_id text NOT NULL,
- room_id text NOT NULL,
- history_visibility text NOT NULL
-);
-
-
-
-CREATE TABLE local_group_membership (
- group_id text NOT NULL,
- user_id text NOT NULL,
- is_admin boolean NOT NULL,
- membership text NOT NULL,
- is_publicised boolean NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE local_group_updates (
- stream_id bigint NOT NULL,
- group_id text NOT NULL,
- user_id text NOT NULL,
- type text NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE local_invites (
- stream_id bigint NOT NULL,
- inviter text NOT NULL,
- invitee text NOT NULL,
- event_id text NOT NULL,
- room_id text NOT NULL,
- locally_rejected text,
- replaced_by text
-);
-
-
-
-CREATE TABLE local_media_repository (
- media_id text,
- media_type text,
- media_length integer,
- created_ts bigint,
- upload_name text,
- user_id text,
- quarantined_by text,
- url_cache text,
- last_access_ts bigint
-);
-
-
-
-CREATE TABLE local_media_repository_thumbnails (
- media_id text,
- thumbnail_width integer,
- thumbnail_height integer,
- thumbnail_type text,
- thumbnail_method text,
- thumbnail_length integer
-);
-
-
-
-CREATE TABLE local_media_repository_url_cache (
- url text,
- response_code integer,
- etag text,
- expires_ts bigint,
- og text,
- media_id text,
- download_ts bigint
-);
-
-
-
-CREATE TABLE monthly_active_users (
- user_id text NOT NULL,
- "timestamp" bigint NOT NULL
-);
-
-
-
-CREATE TABLE open_id_tokens (
- token text NOT NULL,
- ts_valid_until_ms bigint NOT NULL,
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE presence (
- user_id text NOT NULL,
- state character varying(20),
- status_msg text,
- mtime bigint
-);
-
-
-
-CREATE TABLE presence_allow_inbound (
- observed_user_id text NOT NULL,
- observer_user_id text NOT NULL
-);
-
-
-
-CREATE TABLE presence_stream (
- stream_id bigint,
- user_id text,
- state text,
- last_active_ts bigint,
- last_federation_update_ts bigint,
- last_user_sync_ts bigint,
- status_msg text,
- currently_active boolean
-);
-
-
-
-CREATE TABLE profiles (
- user_id text NOT NULL,
- displayname text,
- avatar_url text
-);
-
-
-
-CREATE TABLE public_room_list_stream (
- stream_id bigint NOT NULL,
- room_id text NOT NULL,
- visibility boolean NOT NULL,
- appservice_id text,
- network_id text
-);
-
-
-
-CREATE TABLE push_rules (
- id bigint NOT NULL,
- user_name text NOT NULL,
- rule_id text NOT NULL,
- priority_class smallint NOT NULL,
- priority integer DEFAULT 0 NOT NULL,
- conditions text NOT NULL,
- actions text NOT NULL
-);
-
-
-
-CREATE TABLE push_rules_enable (
- id bigint NOT NULL,
- user_name text NOT NULL,
- rule_id text NOT NULL,
- enabled smallint
-);
-
-
-
-CREATE TABLE push_rules_stream (
- stream_id bigint NOT NULL,
- event_stream_ordering bigint NOT NULL,
- user_id text NOT NULL,
- rule_id text NOT NULL,
- op text NOT NULL,
- priority_class smallint,
- priority integer,
- conditions text,
- actions text
-);
-
-
-
-CREATE TABLE pusher_throttle (
- pusher bigint NOT NULL,
- room_id text NOT NULL,
- last_sent_ts bigint,
- throttle_ms bigint
-);
-
-
-
-CREATE TABLE pushers (
- id bigint NOT NULL,
- user_name text NOT NULL,
- access_token bigint,
- profile_tag text NOT NULL,
- kind text NOT NULL,
- app_id text NOT NULL,
- app_display_name text NOT NULL,
- device_display_name text NOT NULL,
- pushkey text NOT NULL,
- ts bigint NOT NULL,
- lang text,
- data text,
- last_stream_ordering integer,
- last_success bigint,
- failing_since bigint
-);
-
-
-
-CREATE TABLE ratelimit_override (
- user_id text NOT NULL,
- messages_per_second bigint,
- burst_count bigint
-);
-
-
-
-CREATE TABLE receipts_graph (
- room_id text NOT NULL,
- receipt_type text NOT NULL,
- user_id text NOT NULL,
- event_ids text NOT NULL,
- data text NOT NULL
-);
-
-
-
-CREATE TABLE receipts_linearized (
- stream_id bigint NOT NULL,
- room_id text NOT NULL,
- receipt_type text NOT NULL,
- user_id text NOT NULL,
- event_id text NOT NULL,
- data text NOT NULL
-);
-
-
-
-CREATE TABLE received_transactions (
- transaction_id text,
- origin text,
- ts bigint,
- response_code integer,
- response_json bytea,
- has_been_referenced smallint DEFAULT 0
-);
-
-
-
-CREATE TABLE redactions (
- event_id text NOT NULL,
- redacts text NOT NULL
-);
-
-
-
-CREATE TABLE rejections (
- event_id text NOT NULL,
- reason text NOT NULL,
- last_check text NOT NULL
-);
-
-
-
-CREATE TABLE remote_media_cache (
- media_origin text,
- media_id text,
- media_type text,
- created_ts bigint,
- upload_name text,
- media_length integer,
- filesystem_id text,
- last_access_ts bigint,
- quarantined_by text
-);
-
-
-
-CREATE TABLE remote_media_cache_thumbnails (
- media_origin text,
- media_id text,
- thumbnail_width integer,
- thumbnail_height integer,
- thumbnail_method text,
- thumbnail_type text,
- thumbnail_length integer,
- filesystem_id text
-);
-
-
-
-CREATE TABLE remote_profile_cache (
- user_id text NOT NULL,
- displayname text,
- avatar_url text,
- last_check bigint NOT NULL
-);
-
-
-
-CREATE TABLE room_account_data (
- user_id text NOT NULL,
- room_id text NOT NULL,
- account_data_type text NOT NULL,
- stream_id bigint NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE room_alias_servers (
- room_alias text NOT NULL,
- server text NOT NULL
-);
-
-
-
-CREATE TABLE room_aliases (
- room_alias text NOT NULL,
- room_id text NOT NULL,
- creator text
-);
-
-
-
-CREATE TABLE room_depth (
- room_id text NOT NULL,
- min_depth integer NOT NULL
-);
-
-
-
-CREATE TABLE room_memberships (
- event_id text NOT NULL,
- user_id text NOT NULL,
- sender text NOT NULL,
- room_id text NOT NULL,
- membership text NOT NULL,
- forgotten integer DEFAULT 0,
- display_name text,
- avatar_url text
-);
-
-
-
-CREATE TABLE room_names (
- event_id text NOT NULL,
- room_id text NOT NULL,
- name text NOT NULL
-);
-
-
-
-CREATE TABLE room_state (
- room_id text NOT NULL,
- join_rules text,
- history_visibility text,
- encryption text,
- name text,
- topic text,
- avatar text,
- canonical_alias text
-);
-
-
-
-CREATE TABLE room_stats (
- room_id text NOT NULL,
- ts bigint NOT NULL,
- bucket_size integer NOT NULL,
- current_state_events integer NOT NULL,
- joined_members integer NOT NULL,
- invited_members integer NOT NULL,
- left_members integer NOT NULL,
- banned_members integer NOT NULL,
- state_events integer NOT NULL
-);
-
-
-
-CREATE TABLE room_stats_earliest_token (
- room_id text NOT NULL,
- token bigint NOT NULL
-);
-
-
-
-CREATE TABLE room_tags (
- user_id text NOT NULL,
- room_id text NOT NULL,
- tag text NOT NULL,
- content text NOT NULL
-);
-
-
-
-CREATE TABLE room_tags_revisions (
- user_id text NOT NULL,
- room_id text NOT NULL,
- stream_id bigint NOT NULL
-);
-
-
-
-CREATE TABLE rooms (
- room_id text NOT NULL,
- is_public boolean,
- creator text
-);
-
-
-
-CREATE TABLE server_keys_json (
- server_name text NOT NULL,
- key_id text NOT NULL,
- from_server text NOT NULL,
- ts_added_ms bigint NOT NULL,
- ts_valid_until_ms bigint NOT NULL,
- key_json bytea NOT NULL
-);
-
-
-
-CREATE TABLE server_signature_keys (
- server_name text,
- key_id text,
- from_server text,
- ts_added_ms bigint,
- verify_key bytea,
- ts_valid_until_ms bigint
-);
-
-
-
-CREATE TABLE state_events (
- event_id text NOT NULL,
- room_id text NOT NULL,
- type text NOT NULL,
- state_key text NOT NULL,
- prev_state text
-);
-
-
-
-CREATE TABLE stats_stream_pos (
- lock character(1) DEFAULT 'X'::bpchar NOT NULL,
- stream_id bigint,
- CONSTRAINT stats_stream_pos_lock_check CHECK ((lock = 'X'::bpchar))
-);
-
-
-
-CREATE TABLE stream_ordering_to_exterm (
- stream_ordering bigint NOT NULL,
- room_id text NOT NULL,
- event_id text NOT NULL
-);
-
-
-
-CREATE TABLE threepid_guest_access_tokens (
- medium text,
- address text,
- guest_access_token text,
- first_inviter text
-);
-
-
-
-CREATE TABLE topics (
- event_id text NOT NULL,
- room_id text NOT NULL,
- topic text NOT NULL
-);
-
-
-
-CREATE TABLE user_daily_visits (
- user_id text NOT NULL,
- device_id text,
- "timestamp" bigint NOT NULL
-);
-
-
-
-CREATE TABLE user_directory (
- user_id text NOT NULL,
- room_id text,
- display_name text,
- avatar_url text
-);
-
-
-
-CREATE TABLE user_directory_search (
- user_id text NOT NULL,
- vector tsvector
-);
-
-
-
-CREATE TABLE user_directory_stream_pos (
- lock character(1) DEFAULT 'X'::bpchar NOT NULL,
- stream_id bigint,
- CONSTRAINT user_directory_stream_pos_lock_check CHECK ((lock = 'X'::bpchar))
-);
-
-
-
-CREATE TABLE user_filters (
- user_id text,
- filter_id bigint,
- filter_json bytea
-);
-
-
-
-CREATE TABLE user_ips (
- user_id text NOT NULL,
- access_token text NOT NULL,
- device_id text,
- ip text NOT NULL,
- user_agent text NOT NULL,
- last_seen bigint NOT NULL
-);
-
-
-
-CREATE TABLE user_stats (
- user_id text NOT NULL,
- ts bigint NOT NULL,
- bucket_size integer NOT NULL,
- public_rooms integer NOT NULL,
- private_rooms integer NOT NULL
-);
-
-
-
-CREATE TABLE user_threepid_id_server (
- user_id text NOT NULL,
- medium text NOT NULL,
- address text NOT NULL,
- id_server text NOT NULL
-);
-
-
-
-CREATE TABLE user_threepids (
- user_id text NOT NULL,
- medium text NOT NULL,
- address text NOT NULL,
- validated_at bigint NOT NULL,
- added_at bigint NOT NULL
-);
-
-
-
-CREATE TABLE users (
- name text,
- password_hash text,
- creation_ts bigint,
- admin smallint DEFAULT 0 NOT NULL,
- upgrade_ts bigint,
- is_guest smallint DEFAULT 0 NOT NULL,
- appservice_id text,
- consent_version text,
- consent_server_notice_sent text,
- user_type text
-);
-
-
-
-CREATE TABLE users_in_public_rooms (
- user_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-CREATE TABLE users_pending_deactivation (
- user_id text NOT NULL
-);
-
-
-
-CREATE TABLE users_who_share_private_rooms (
- user_id text NOT NULL,
- other_user_id text NOT NULL,
- room_id text NOT NULL
-);
-
-
-
-ALTER TABLE ONLY access_tokens
- ADD CONSTRAINT access_tokens_pkey PRIMARY KEY (id);
-
-
-
-ALTER TABLE ONLY access_tokens
- ADD CONSTRAINT access_tokens_token_key UNIQUE (token);
-
-
-
-ALTER TABLE ONLY account_data
- ADD CONSTRAINT account_data_uniqueness UNIQUE (user_id, account_data_type);
-
-
-
-ALTER TABLE ONLY account_validity
- ADD CONSTRAINT account_validity_pkey PRIMARY KEY (user_id);
-
-
-
-ALTER TABLE ONLY application_services_state
- ADD CONSTRAINT application_services_state_pkey PRIMARY KEY (as_id);
-
-
-
-ALTER TABLE ONLY application_services_txns
- ADD CONSTRAINT application_services_txns_as_id_txn_id_key UNIQUE (as_id, txn_id);
-
-
-
-ALTER TABLE ONLY appservice_stream_position
- ADD CONSTRAINT appservice_stream_position_lock_key UNIQUE (lock);
-
-
-
-ALTER TABLE ONLY current_state_events
- ADD CONSTRAINT current_state_events_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY current_state_events
- ADD CONSTRAINT current_state_events_room_id_type_state_key_key UNIQUE (room_id, type, state_key);
-
-
-
-ALTER TABLE ONLY destinations
- ADD CONSTRAINT destinations_pkey PRIMARY KEY (destination);
-
-
-
-ALTER TABLE ONLY devices
- ADD CONSTRAINT device_uniqueness UNIQUE (user_id, device_id);
-
-
-
-ALTER TABLE ONLY e2e_device_keys_json
- ADD CONSTRAINT e2e_device_keys_json_uniqueness UNIQUE (user_id, device_id);
-
-
-
-ALTER TABLE ONLY e2e_one_time_keys_json
- ADD CONSTRAINT e2e_one_time_keys_json_uniqueness UNIQUE (user_id, device_id, algorithm, key_id);
-
-
-
-ALTER TABLE ONLY event_backward_extremities
- ADD CONSTRAINT event_backward_extremities_event_id_room_id_key UNIQUE (event_id, room_id);
-
-
-
-ALTER TABLE ONLY event_edges
- ADD CONSTRAINT event_edges_event_id_prev_event_id_room_id_is_state_key UNIQUE (event_id, prev_event_id, room_id, is_state);
-
-
-
-ALTER TABLE ONLY event_forward_extremities
- ADD CONSTRAINT event_forward_extremities_event_id_room_id_key UNIQUE (event_id, room_id);
-
-
-
-ALTER TABLE ONLY event_push_actions
- ADD CONSTRAINT event_id_user_id_profile_tag_uniqueness UNIQUE (room_id, event_id, user_id, profile_tag);
-
-
-
-ALTER TABLE ONLY event_json
- ADD CONSTRAINT event_json_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY event_push_summary_stream_ordering
- ADD CONSTRAINT event_push_summary_stream_ordering_lock_key UNIQUE (lock);
-
-
-
-ALTER TABLE ONLY event_reference_hashes
- ADD CONSTRAINT event_reference_hashes_event_id_algorithm_key UNIQUE (event_id, algorithm);
-
-
-
-ALTER TABLE ONLY event_reports
- ADD CONSTRAINT event_reports_pkey PRIMARY KEY (id);
-
-
-
-ALTER TABLE ONLY event_to_state_groups
- ADD CONSTRAINT event_to_state_groups_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY events
- ADD CONSTRAINT events_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY events
- ADD CONSTRAINT events_pkey PRIMARY KEY (stream_ordering);
-
-
-
-ALTER TABLE ONLY ex_outlier_stream
- ADD CONSTRAINT ex_outlier_stream_pkey PRIMARY KEY (event_stream_ordering);
-
-
-
-ALTER TABLE ONLY group_roles
- ADD CONSTRAINT group_roles_group_id_role_id_key UNIQUE (group_id, role_id);
-
-
-
-ALTER TABLE ONLY group_room_categories
- ADD CONSTRAINT group_room_categories_group_id_category_id_key UNIQUE (group_id, category_id);
-
-
-
-ALTER TABLE ONLY group_summary_roles
- ADD CONSTRAINT group_summary_roles_group_id_role_id_role_order_key UNIQUE (group_id, role_id, role_order);
-
-
-
-ALTER TABLE ONLY group_summary_room_categories
- ADD CONSTRAINT group_summary_room_categories_group_id_category_id_cat_orde_key UNIQUE (group_id, category_id, cat_order);
-
-
-
-ALTER TABLE ONLY group_summary_rooms
- ADD CONSTRAINT group_summary_rooms_group_id_category_id_room_id_room_order_key UNIQUE (group_id, category_id, room_id, room_order);
-
-
-
-ALTER TABLE ONLY guest_access
- ADD CONSTRAINT guest_access_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY history_visibility
- ADD CONSTRAINT history_visibility_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY local_media_repository
- ADD CONSTRAINT local_media_repository_media_id_key UNIQUE (media_id);
-
-
-
-ALTER TABLE ONLY local_media_repository_thumbnails
- ADD CONSTRAINT local_media_repository_thumbn_media_id_thumbnail_width_thum_key UNIQUE (media_id, thumbnail_width, thumbnail_height, thumbnail_type);
-
-
-
-ALTER TABLE ONLY user_threepids
- ADD CONSTRAINT medium_address UNIQUE (medium, address);
-
-
-
-ALTER TABLE ONLY open_id_tokens
- ADD CONSTRAINT open_id_tokens_pkey PRIMARY KEY (token);
-
-
-
-ALTER TABLE ONLY presence_allow_inbound
- ADD CONSTRAINT presence_allow_inbound_observed_user_id_observer_user_id_key UNIQUE (observed_user_id, observer_user_id);
-
-
-
-ALTER TABLE ONLY presence
- ADD CONSTRAINT presence_user_id_key UNIQUE (user_id);
-
-
-
-ALTER TABLE ONLY account_data_max_stream_id
- ADD CONSTRAINT private_user_data_max_stream_id_lock_key UNIQUE (lock);
-
-
-
-ALTER TABLE ONLY profiles
- ADD CONSTRAINT profiles_user_id_key UNIQUE (user_id);
-
-
-
-ALTER TABLE ONLY push_rules_enable
- ADD CONSTRAINT push_rules_enable_pkey PRIMARY KEY (id);
-
-
-
-ALTER TABLE ONLY push_rules_enable
- ADD CONSTRAINT push_rules_enable_user_name_rule_id_key UNIQUE (user_name, rule_id);
-
-
-
-ALTER TABLE ONLY push_rules
- ADD CONSTRAINT push_rules_pkey PRIMARY KEY (id);
-
-
-
-ALTER TABLE ONLY push_rules
- ADD CONSTRAINT push_rules_user_name_rule_id_key UNIQUE (user_name, rule_id);
-
-
-
-ALTER TABLE ONLY pusher_throttle
- ADD CONSTRAINT pusher_throttle_pkey PRIMARY KEY (pusher, room_id);
-
-
-
-ALTER TABLE ONLY pushers
- ADD CONSTRAINT pushers2_app_id_pushkey_user_name_key UNIQUE (app_id, pushkey, user_name);
-
-
-
-ALTER TABLE ONLY pushers
- ADD CONSTRAINT pushers2_pkey PRIMARY KEY (id);
-
-
-
-ALTER TABLE ONLY receipts_graph
- ADD CONSTRAINT receipts_graph_uniqueness UNIQUE (room_id, receipt_type, user_id);
-
-
-
-ALTER TABLE ONLY receipts_linearized
- ADD CONSTRAINT receipts_linearized_uniqueness UNIQUE (room_id, receipt_type, user_id);
-
-
-
-ALTER TABLE ONLY received_transactions
- ADD CONSTRAINT received_transactions_transaction_id_origin_key UNIQUE (transaction_id, origin);
-
-
-
-ALTER TABLE ONLY redactions
- ADD CONSTRAINT redactions_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY rejections
- ADD CONSTRAINT rejections_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY remote_media_cache
- ADD CONSTRAINT remote_media_cache_media_origin_media_id_key UNIQUE (media_origin, media_id);
-
-
-
-ALTER TABLE ONLY remote_media_cache_thumbnails
- ADD CONSTRAINT remote_media_cache_thumbnails_media_origin_media_id_thumbna_key UNIQUE (media_origin, media_id, thumbnail_width, thumbnail_height, thumbnail_type);
-
-
-
-ALTER TABLE ONLY room_account_data
- ADD CONSTRAINT room_account_data_uniqueness UNIQUE (user_id, room_id, account_data_type);
-
-
-
-ALTER TABLE ONLY room_aliases
- ADD CONSTRAINT room_aliases_room_alias_key UNIQUE (room_alias);
-
-
-
-ALTER TABLE ONLY room_depth
- ADD CONSTRAINT room_depth_room_id_key UNIQUE (room_id);
-
-
-
-ALTER TABLE ONLY room_memberships
- ADD CONSTRAINT room_memberships_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY room_names
- ADD CONSTRAINT room_names_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY room_tags_revisions
- ADD CONSTRAINT room_tag_revisions_uniqueness UNIQUE (user_id, room_id);
-
-
-
-ALTER TABLE ONLY room_tags
- ADD CONSTRAINT room_tag_uniqueness UNIQUE (user_id, room_id, tag);
-
-
-
-ALTER TABLE ONLY rooms
- ADD CONSTRAINT rooms_pkey PRIMARY KEY (room_id);
-
-
-
-ALTER TABLE ONLY server_keys_json
- ADD CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server);
-
-
-
-ALTER TABLE ONLY server_signature_keys
- ADD CONSTRAINT server_signature_keys_server_name_key_id_key UNIQUE (server_name, key_id);
-
-
-
-ALTER TABLE ONLY state_events
- ADD CONSTRAINT state_events_event_id_key UNIQUE (event_id);
-
-
-ALTER TABLE ONLY stats_stream_pos
- ADD CONSTRAINT stats_stream_pos_lock_key UNIQUE (lock);
-
-
-
-ALTER TABLE ONLY topics
- ADD CONSTRAINT topics_event_id_key UNIQUE (event_id);
-
-
-
-ALTER TABLE ONLY user_directory_stream_pos
- ADD CONSTRAINT user_directory_stream_pos_lock_key UNIQUE (lock);
-
-
-
-ALTER TABLE ONLY users
- ADD CONSTRAINT users_name_key UNIQUE (name);
-
-
-
-CREATE INDEX access_tokens_device_id ON access_tokens USING btree (user_id, device_id);
-
-
-
-CREATE INDEX account_data_stream_id ON account_data USING btree (user_id, stream_id);
-
-
-
-CREATE INDEX application_services_txns_id ON application_services_txns USING btree (as_id);
-
-
-
-CREATE UNIQUE INDEX appservice_room_list_idx ON appservice_room_list USING btree (appservice_id, network_id, room_id);
-
-
-
-CREATE UNIQUE INDEX blocked_rooms_idx ON blocked_rooms USING btree (room_id);
-
-
-
-CREATE INDEX cache_invalidation_stream_id ON cache_invalidation_stream USING btree (stream_id);
-
-
-
-CREATE INDEX current_state_delta_stream_idx ON current_state_delta_stream USING btree (stream_id);
-
-
-
-CREATE INDEX current_state_events_member_index ON current_state_events USING btree (state_key) WHERE (type = 'm.room.member'::text);
-
-
-
-CREATE INDEX deleted_pushers_stream_id ON deleted_pushers USING btree (stream_id);
-
-
-
-CREATE INDEX device_federation_inbox_sender_id ON device_federation_inbox USING btree (origin, message_id);
-
-
-
-CREATE INDEX device_federation_outbox_destination_id ON device_federation_outbox USING btree (destination, stream_id);
-
-
-
-CREATE INDEX device_federation_outbox_id ON device_federation_outbox USING btree (stream_id);
-
-
-
-CREATE INDEX device_inbox_stream_id_user_id ON device_inbox USING btree (stream_id, user_id);
-
-
-
-CREATE INDEX device_inbox_user_stream_id ON device_inbox USING btree (user_id, device_id, stream_id);
-
-
-
-CREATE INDEX device_lists_outbound_last_success_idx ON device_lists_outbound_last_success USING btree (destination, user_id, stream_id);
-
-
-
-CREATE INDEX device_lists_outbound_pokes_id ON device_lists_outbound_pokes USING btree (destination, stream_id);
-
-
-
-CREATE INDEX device_lists_outbound_pokes_stream ON device_lists_outbound_pokes USING btree (stream_id);
-
-
-
-CREATE INDEX device_lists_outbound_pokes_user ON device_lists_outbound_pokes USING btree (destination, user_id);
-
-
-
-CREATE UNIQUE INDEX device_lists_remote_cache_unique_id ON device_lists_remote_cache USING btree (user_id, device_id);
-
-
-
-CREATE UNIQUE INDEX device_lists_remote_extremeties_unique_idx ON device_lists_remote_extremeties USING btree (user_id);
-
-
-
-CREATE INDEX device_lists_stream_id ON device_lists_stream USING btree (stream_id, user_id);
-
-
-
-CREATE INDEX device_lists_stream_user_id ON device_lists_stream USING btree (user_id, device_id);
-
-
-
-CREATE UNIQUE INDEX e2e_room_keys_idx ON e2e_room_keys USING btree (user_id, room_id, session_id);
-
-
-
-CREATE UNIQUE INDEX e2e_room_keys_versions_idx ON e2e_room_keys_versions USING btree (user_id, version);
-
-
-
-CREATE UNIQUE INDEX erased_users_user ON erased_users USING btree (user_id);
-
-
-
-CREATE INDEX ev_b_extrem_id ON event_backward_extremities USING btree (event_id);
-
-
-
-CREATE INDEX ev_b_extrem_room ON event_backward_extremities USING btree (room_id);
-
-
-
-CREATE INDEX ev_edges_id ON event_edges USING btree (event_id);
-
-
-
-CREATE INDEX ev_edges_prev_id ON event_edges USING btree (prev_event_id);
-
-
-
-CREATE INDEX ev_extrem_id ON event_forward_extremities USING btree (event_id);
-
-
-
-CREATE INDEX ev_extrem_room ON event_forward_extremities USING btree (room_id);
-
-
-
-CREATE INDEX evauth_edges_id ON event_auth USING btree (event_id);
-
-
-
-CREATE INDEX event_contains_url_index ON events USING btree (room_id, topological_ordering, stream_ordering) WHERE ((contains_url = true) AND (outlier = false));
-
-
-
-CREATE INDEX event_json_room_id ON event_json USING btree (room_id);
-
-
-
-CREATE INDEX event_push_actions_highlights_index ON event_push_actions USING btree (user_id, room_id, topological_ordering, stream_ordering) WHERE (highlight = 1);
-
-
-
-CREATE INDEX event_push_actions_rm_tokens ON event_push_actions USING btree (user_id, room_id, topological_ordering, stream_ordering);
-
-
-
-CREATE INDEX event_push_actions_room_id_user_id ON event_push_actions USING btree (room_id, user_id);
-
-
-
-CREATE INDEX event_push_actions_staging_id ON event_push_actions_staging USING btree (event_id);
-
-
-
-CREATE INDEX event_push_actions_stream_ordering ON event_push_actions USING btree (stream_ordering, user_id);
-
-
-
-CREATE INDEX event_push_actions_u_highlight ON event_push_actions USING btree (user_id, stream_ordering);
-
-
-
-CREATE INDEX event_push_summary_user_rm ON event_push_summary USING btree (user_id, room_id);
-
-
-
-CREATE INDEX event_reference_hashes_id ON event_reference_hashes USING btree (event_id);
-
-
-
-CREATE UNIQUE INDEX event_relations_id ON event_relations USING btree (event_id);
-
-
-
-CREATE INDEX event_relations_relates ON event_relations USING btree (relates_to_id, relation_type, aggregation_key);
-
-
-
-CREATE INDEX event_search_ev_ridx ON event_search USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX event_search_event_id_idx ON event_search USING btree (event_id);
-
-
-
-CREATE INDEX event_search_fts_idx ON event_search USING gin (vector);
-
-
-
-CREATE INDEX event_to_state_groups_sg_index ON event_to_state_groups USING btree (state_group);
-
-
-
-CREATE INDEX events_order_room ON events USING btree (room_id, topological_ordering, stream_ordering);
-
-
-
-CREATE INDEX events_room_stream ON events USING btree (room_id, stream_ordering);
-
-
-
-CREATE INDEX events_ts ON events USING btree (origin_server_ts, stream_ordering);
-
-
-
-CREATE INDEX group_attestations_remote_g_idx ON group_attestations_remote USING btree (group_id, user_id);
-
-
-
-CREATE INDEX group_attestations_remote_u_idx ON group_attestations_remote USING btree (user_id);
-
-
-
-CREATE INDEX group_attestations_remote_v_idx ON group_attestations_remote USING btree (valid_until_ms);
-
-
-
-CREATE INDEX group_attestations_renewals_g_idx ON group_attestations_renewals USING btree (group_id, user_id);
-
-
-
-CREATE INDEX group_attestations_renewals_u_idx ON group_attestations_renewals USING btree (user_id);
-
-
-
-CREATE INDEX group_attestations_renewals_v_idx ON group_attestations_renewals USING btree (valid_until_ms);
-
-
-
-CREATE UNIQUE INDEX group_invites_g_idx ON group_invites USING btree (group_id, user_id);
-
-
-
-CREATE INDEX group_invites_u_idx ON group_invites USING btree (user_id);
-
-
-
-CREATE UNIQUE INDEX group_rooms_g_idx ON group_rooms USING btree (group_id, room_id);
-
-
-
-CREATE INDEX group_rooms_r_idx ON group_rooms USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX group_summary_rooms_g_idx ON group_summary_rooms USING btree (group_id, room_id, category_id);
-
-
-
-CREATE INDEX group_summary_users_g_idx ON group_summary_users USING btree (group_id);
-
-
-
-CREATE UNIQUE INDEX group_users_g_idx ON group_users USING btree (group_id, user_id);
-
-
-
-CREATE INDEX group_users_u_idx ON group_users USING btree (user_id);
-
-
-
-CREATE UNIQUE INDEX groups_idx ON groups USING btree (group_id);
-
-
-
-CREATE INDEX local_group_membership_g_idx ON local_group_membership USING btree (group_id);
-
-
-
-CREATE INDEX local_group_membership_u_idx ON local_group_membership USING btree (user_id, group_id);
-
-
-
-CREATE INDEX local_invites_for_user_idx ON local_invites USING btree (invitee, locally_rejected, replaced_by, room_id);
-
-
-
-CREATE INDEX local_invites_id ON local_invites USING btree (stream_id);
-
-
-
-CREATE INDEX local_media_repository_thumbnails_media_id ON local_media_repository_thumbnails USING btree (media_id);
-
-
-
-CREATE INDEX local_media_repository_url_cache_by_url_download_ts ON local_media_repository_url_cache USING btree (url, download_ts);
-
-
-
-CREATE INDEX local_media_repository_url_cache_expires_idx ON local_media_repository_url_cache USING btree (expires_ts);
-
-
-
-CREATE INDEX local_media_repository_url_cache_media_idx ON local_media_repository_url_cache USING btree (media_id);
-
-
-
-CREATE INDEX local_media_repository_url_idx ON local_media_repository USING btree (created_ts) WHERE (url_cache IS NOT NULL);
-
-
-
-CREATE INDEX monthly_active_users_time_stamp ON monthly_active_users USING btree ("timestamp");
-
-
-
-CREATE UNIQUE INDEX monthly_active_users_users ON monthly_active_users USING btree (user_id);
-
-
-
-CREATE INDEX open_id_tokens_ts_valid_until_ms ON open_id_tokens USING btree (ts_valid_until_ms);
-
-
-
-CREATE INDEX presence_stream_id ON presence_stream USING btree (stream_id, user_id);
-
-
-
-CREATE INDEX presence_stream_user_id ON presence_stream USING btree (user_id);
-
-
-
-CREATE INDEX public_room_index ON rooms USING btree (is_public);
-
-
-
-CREATE INDEX public_room_list_stream_idx ON public_room_list_stream USING btree (stream_id);
-
-
-
-CREATE INDEX public_room_list_stream_rm_idx ON public_room_list_stream USING btree (room_id, stream_id);
-
-
-
-CREATE INDEX push_rules_enable_user_name ON push_rules_enable USING btree (user_name);
-
-
-
-CREATE INDEX push_rules_stream_id ON push_rules_stream USING btree (stream_id);
-
-
-
-CREATE INDEX push_rules_stream_user_stream_id ON push_rules_stream USING btree (user_id, stream_id);
-
-
-
-CREATE INDEX push_rules_user_name ON push_rules USING btree (user_name);
-
-
-
-CREATE UNIQUE INDEX ratelimit_override_idx ON ratelimit_override USING btree (user_id);
-
-
-
-CREATE INDEX receipts_linearized_id ON receipts_linearized USING btree (stream_id);
-
-
-
-CREATE INDEX receipts_linearized_room_stream ON receipts_linearized USING btree (room_id, stream_id);
-
-
-
-CREATE INDEX receipts_linearized_user ON receipts_linearized USING btree (user_id);
-
-
-
-CREATE INDEX received_transactions_ts ON received_transactions USING btree (ts);
-
-
-
-CREATE INDEX redactions_redacts ON redactions USING btree (redacts);
-
-
-
-CREATE INDEX remote_profile_cache_time ON remote_profile_cache USING btree (last_check);
-
-
-
-CREATE UNIQUE INDEX remote_profile_cache_user_id ON remote_profile_cache USING btree (user_id);
-
-
-
-CREATE INDEX room_account_data_stream_id ON room_account_data USING btree (user_id, stream_id);
-
-
-
-CREATE INDEX room_alias_servers_alias ON room_alias_servers USING btree (room_alias);
-
-
-
-CREATE INDEX room_aliases_id ON room_aliases USING btree (room_id);
-
-
-
-CREATE INDEX room_depth_room ON room_depth USING btree (room_id);
-
-
-
-CREATE INDEX room_memberships_room_id ON room_memberships USING btree (room_id);
-
-
-
-CREATE INDEX room_memberships_user_id ON room_memberships USING btree (user_id);
-
-
-
-CREATE INDEX room_names_room_id ON room_names USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX room_state_room ON room_state USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX room_stats_earliest_token_idx ON room_stats_earliest_token USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX room_stats_room_ts ON room_stats USING btree (room_id, ts);
-
-
-
-CREATE INDEX stream_ordering_to_exterm_idx ON stream_ordering_to_exterm USING btree (stream_ordering);
-
-
-
-CREATE INDEX stream_ordering_to_exterm_rm_idx ON stream_ordering_to_exterm USING btree (room_id, stream_ordering);
-
-
-
-CREATE UNIQUE INDEX threepid_guest_access_tokens_index ON threepid_guest_access_tokens USING btree (medium, address);
-
-
-
-CREATE INDEX topics_room_id ON topics USING btree (room_id);
-
-
-
-CREATE INDEX user_daily_visits_ts_idx ON user_daily_visits USING btree ("timestamp");
-
-
-
-CREATE INDEX user_daily_visits_uts_idx ON user_daily_visits USING btree (user_id, "timestamp");
-
-
-
-CREATE INDEX user_directory_room_idx ON user_directory USING btree (room_id);
-
-
-
-CREATE INDEX user_directory_search_fts_idx ON user_directory_search USING gin (vector);
-
-
-
-CREATE UNIQUE INDEX user_directory_search_user_idx ON user_directory_search USING btree (user_id);
-
-
-
-CREATE UNIQUE INDEX user_directory_user_idx ON user_directory USING btree (user_id);
-
-
-
-CREATE INDEX user_filters_by_user_id_filter_id ON user_filters USING btree (user_id, filter_id);
-
-
-
-CREATE INDEX user_ips_device_id ON user_ips USING btree (user_id, device_id, last_seen);
-
-
-
-CREATE INDEX user_ips_last_seen ON user_ips USING btree (user_id, last_seen);
-
-
-
-CREATE INDEX user_ips_last_seen_only ON user_ips USING btree (last_seen);
-
-
-
-CREATE UNIQUE INDEX user_ips_user_token_ip_unique_index ON user_ips USING btree (user_id, access_token, ip);
-
-
-
-CREATE UNIQUE INDEX user_stats_user_ts ON user_stats USING btree (user_id, ts);
-
-
-
-CREATE UNIQUE INDEX user_threepid_id_server_idx ON user_threepid_id_server USING btree (user_id, medium, address, id_server);
-
-
-
-CREATE INDEX user_threepids_medium_address ON user_threepids USING btree (medium, address);
-
-
-
-CREATE INDEX user_threepids_user_id ON user_threepids USING btree (user_id);
-
-
-
-CREATE INDEX users_creation_ts ON users USING btree (creation_ts);
-
-
-
-CREATE UNIQUE INDEX users_in_public_rooms_u_idx ON users_in_public_rooms USING btree (user_id, room_id);
-
-
-
-CREATE INDEX users_who_share_private_rooms_o_idx ON users_who_share_private_rooms USING btree (other_user_id);
-
-
-
-CREATE INDEX users_who_share_private_rooms_r_idx ON users_who_share_private_rooms USING btree (room_id);
-
-
-
-CREATE UNIQUE INDEX users_who_share_private_rooms_u_idx ON users_who_share_private_rooms USING btree (user_id, other_user_id, room_id);
diff --git a/synapse/storage/databases/main/schema/full_schemas/54/full.sql.sqlite b/synapse/storage/databases/main/schema/full_schemas/54/full.sql.sqlite
deleted file mode 100644
index 308124e531..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/54/full.sql.sqlite
+++ /dev/null
@@ -1,243 +0,0 @@
-CREATE TABLE application_services_state( as_id TEXT PRIMARY KEY, state VARCHAR(5), last_txn INTEGER );
-CREATE TABLE application_services_txns( as_id TEXT NOT NULL, txn_id INTEGER NOT NULL, event_ids TEXT NOT NULL, UNIQUE(as_id, txn_id) );
-CREATE INDEX application_services_txns_id ON application_services_txns ( as_id );
-CREATE TABLE presence( user_id TEXT NOT NULL, state VARCHAR(20), status_msg TEXT, mtime BIGINT, UNIQUE (user_id) );
-CREATE TABLE presence_allow_inbound( observed_user_id TEXT NOT NULL, observer_user_id TEXT NOT NULL, UNIQUE (observed_user_id, observer_user_id) );
-CREATE TABLE users( name TEXT, password_hash TEXT, creation_ts BIGINT, admin SMALLINT DEFAULT 0 NOT NULL, upgrade_ts BIGINT, is_guest SMALLINT DEFAULT 0 NOT NULL, appservice_id TEXT, consent_version TEXT, consent_server_notice_sent TEXT, user_type TEXT DEFAULT NULL, UNIQUE(name) );
-CREATE TABLE access_tokens( id BIGINT PRIMARY KEY, user_id TEXT NOT NULL, device_id TEXT, token TEXT NOT NULL, last_used BIGINT, UNIQUE(token) );
-CREATE TABLE user_ips ( user_id TEXT NOT NULL, access_token TEXT NOT NULL, device_id TEXT, ip TEXT NOT NULL, user_agent TEXT NOT NULL, last_seen BIGINT NOT NULL );
-CREATE TABLE profiles( user_id TEXT NOT NULL, displayname TEXT, avatar_url TEXT, UNIQUE(user_id) );
-CREATE TABLE received_transactions( transaction_id TEXT, origin TEXT, ts BIGINT, response_code INTEGER, response_json bytea, has_been_referenced smallint default 0, UNIQUE (transaction_id, origin) );
-CREATE TABLE destinations( destination TEXT PRIMARY KEY, retry_last_ts BIGINT, retry_interval INTEGER );
-CREATE TABLE events( stream_ordering INTEGER PRIMARY KEY, topological_ordering BIGINT NOT NULL, event_id TEXT NOT NULL, type TEXT NOT NULL, room_id TEXT NOT NULL, content TEXT, unrecognized_keys TEXT, processed BOOL NOT NULL, outlier BOOL NOT NULL, depth BIGINT DEFAULT 0 NOT NULL, origin_server_ts BIGINT, received_ts BIGINT, sender TEXT, contains_url BOOLEAN, UNIQUE (event_id) );
-CREATE INDEX events_order_room ON events ( room_id, topological_ordering, stream_ordering );
-CREATE TABLE event_json( event_id TEXT NOT NULL, room_id TEXT NOT NULL, internal_metadata TEXT NOT NULL, json TEXT NOT NULL, format_version INTEGER, UNIQUE (event_id) );
-CREATE INDEX event_json_room_id ON event_json(room_id);
-CREATE TABLE state_events( event_id TEXT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, prev_state TEXT, UNIQUE (event_id) );
-CREATE TABLE current_state_events( event_id TEXT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, UNIQUE (event_id), UNIQUE (room_id, type, state_key) );
-CREATE TABLE room_memberships( event_id TEXT NOT NULL, user_id TEXT NOT NULL, sender TEXT NOT NULL, room_id TEXT NOT NULL, membership TEXT NOT NULL, forgotten INTEGER DEFAULT 0, display_name TEXT, avatar_url TEXT, UNIQUE (event_id) );
-CREATE INDEX room_memberships_room_id ON room_memberships (room_id);
-CREATE INDEX room_memberships_user_id ON room_memberships (user_id);
-CREATE TABLE topics( event_id TEXT NOT NULL, room_id TEXT NOT NULL, topic TEXT NOT NULL, UNIQUE (event_id) );
-CREATE INDEX topics_room_id ON topics(room_id);
-CREATE TABLE room_names( event_id TEXT NOT NULL, room_id TEXT NOT NULL, name TEXT NOT NULL, UNIQUE (event_id) );
-CREATE INDEX room_names_room_id ON room_names(room_id);
-CREATE TABLE rooms( room_id TEXT PRIMARY KEY NOT NULL, is_public BOOL, creator TEXT );
-CREATE TABLE server_signature_keys( server_name TEXT, key_id TEXT, from_server TEXT, ts_added_ms BIGINT, verify_key bytea, ts_valid_until_ms BIGINT, UNIQUE (server_name, key_id) );
-CREATE TABLE rejections( event_id TEXT NOT NULL, reason TEXT NOT NULL, last_check TEXT NOT NULL, UNIQUE (event_id) );
-CREATE TABLE push_rules ( id BIGINT PRIMARY KEY, user_name TEXT NOT NULL, rule_id TEXT NOT NULL, priority_class SMALLINT NOT NULL, priority INTEGER NOT NULL DEFAULT 0, conditions TEXT NOT NULL, actions TEXT NOT NULL, UNIQUE(user_name, rule_id) );
-CREATE INDEX push_rules_user_name on push_rules (user_name);
-CREATE TABLE user_filters( user_id TEXT, filter_id BIGINT, filter_json bytea );
-CREATE INDEX user_filters_by_user_id_filter_id ON user_filters( user_id, filter_id );
-CREATE TABLE push_rules_enable ( id BIGINT PRIMARY KEY, user_name TEXT NOT NULL, rule_id TEXT NOT NULL, enabled SMALLINT, UNIQUE(user_name, rule_id) );
-CREATE INDEX push_rules_enable_user_name on push_rules_enable (user_name);
-CREATE TABLE event_forward_extremities( event_id TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (event_id, room_id) );
-CREATE INDEX ev_extrem_room ON event_forward_extremities(room_id);
-CREATE INDEX ev_extrem_id ON event_forward_extremities(event_id);
-CREATE TABLE event_backward_extremities( event_id TEXT NOT NULL, room_id TEXT NOT NULL, UNIQUE (event_id, room_id) );
-CREATE INDEX ev_b_extrem_room ON event_backward_extremities(room_id);
-CREATE INDEX ev_b_extrem_id ON event_backward_extremities(event_id);
-CREATE TABLE event_edges( event_id TEXT NOT NULL, prev_event_id TEXT NOT NULL, room_id TEXT NOT NULL, is_state BOOL NOT NULL, UNIQUE (event_id, prev_event_id, room_id, is_state) );
-CREATE INDEX ev_edges_id ON event_edges(event_id);
-CREATE INDEX ev_edges_prev_id ON event_edges(prev_event_id);
-CREATE TABLE room_depth( room_id TEXT NOT NULL, min_depth INTEGER NOT NULL, UNIQUE (room_id) );
-CREATE INDEX room_depth_room ON room_depth(room_id);
-CREATE TABLE event_to_state_groups( event_id TEXT NOT NULL, state_group BIGINT NOT NULL, UNIQUE (event_id) );
-CREATE TABLE local_media_repository ( media_id TEXT, media_type TEXT, media_length INTEGER, created_ts BIGINT, upload_name TEXT, user_id TEXT, quarantined_by TEXT, url_cache TEXT, last_access_ts BIGINT, UNIQUE (media_id) );
-CREATE TABLE local_media_repository_thumbnails ( media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_type TEXT, thumbnail_method TEXT, thumbnail_length INTEGER, UNIQUE ( media_id, thumbnail_width, thumbnail_height, thumbnail_type ) );
-CREATE INDEX local_media_repository_thumbnails_media_id ON local_media_repository_thumbnails (media_id);
-CREATE TABLE remote_media_cache ( media_origin TEXT, media_id TEXT, media_type TEXT, created_ts BIGINT, upload_name TEXT, media_length INTEGER, filesystem_id TEXT, last_access_ts BIGINT, quarantined_by TEXT, UNIQUE (media_origin, media_id) );
-CREATE TABLE remote_media_cache_thumbnails ( media_origin TEXT, media_id TEXT, thumbnail_width INTEGER, thumbnail_height INTEGER, thumbnail_method TEXT, thumbnail_type TEXT, thumbnail_length INTEGER, filesystem_id TEXT, UNIQUE ( media_origin, media_id, thumbnail_width, thumbnail_height, thumbnail_type ) );
-CREATE TABLE redactions ( event_id TEXT NOT NULL, redacts TEXT NOT NULL, UNIQUE (event_id) );
-CREATE INDEX redactions_redacts ON redactions (redacts);
-CREATE TABLE room_aliases( room_alias TEXT NOT NULL, room_id TEXT NOT NULL, creator TEXT, UNIQUE (room_alias) );
-CREATE INDEX room_aliases_id ON room_aliases(room_id);
-CREATE TABLE room_alias_servers( room_alias TEXT NOT NULL, server TEXT NOT NULL );
-CREATE INDEX room_alias_servers_alias ON room_alias_servers(room_alias);
-CREATE TABLE event_reference_hashes ( event_id TEXT, algorithm TEXT, hash bytea, UNIQUE (event_id, algorithm) );
-CREATE INDEX event_reference_hashes_id ON event_reference_hashes(event_id);
-CREATE TABLE IF NOT EXISTS "server_keys_json" ( server_name TEXT NOT NULL, key_id TEXT NOT NULL, from_server TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, ts_valid_until_ms BIGINT NOT NULL, key_json bytea NOT NULL, CONSTRAINT server_keys_json_uniqueness UNIQUE (server_name, key_id, from_server) );
-CREATE TABLE e2e_device_keys_json ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, key_json TEXT NOT NULL, CONSTRAINT e2e_device_keys_json_uniqueness UNIQUE (user_id, device_id) );
-CREATE TABLE e2e_one_time_keys_json ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, algorithm TEXT NOT NULL, key_id TEXT NOT NULL, ts_added_ms BIGINT NOT NULL, key_json TEXT NOT NULL, CONSTRAINT e2e_one_time_keys_json_uniqueness UNIQUE (user_id, device_id, algorithm, key_id) );
-CREATE TABLE receipts_graph( room_id TEXT NOT NULL, receipt_type TEXT NOT NULL, user_id TEXT NOT NULL, event_ids TEXT NOT NULL, data TEXT NOT NULL, CONSTRAINT receipts_graph_uniqueness UNIQUE (room_id, receipt_type, user_id) );
-CREATE TABLE receipts_linearized ( stream_id BIGINT NOT NULL, room_id TEXT NOT NULL, receipt_type TEXT NOT NULL, user_id TEXT NOT NULL, event_id TEXT NOT NULL, data TEXT NOT NULL, CONSTRAINT receipts_linearized_uniqueness UNIQUE (room_id, receipt_type, user_id) );
-CREATE INDEX receipts_linearized_id ON receipts_linearized( stream_id );
-CREATE INDEX receipts_linearized_room_stream ON receipts_linearized( room_id, stream_id );
-CREATE TABLE IF NOT EXISTS "user_threepids" ( user_id TEXT NOT NULL, medium TEXT NOT NULL, address TEXT NOT NULL, validated_at BIGINT NOT NULL, added_at BIGINT NOT NULL, CONSTRAINT medium_address UNIQUE (medium, address) );
-CREATE INDEX user_threepids_user_id ON user_threepids(user_id);
-CREATE VIRTUAL TABLE event_search USING fts4 ( event_id, room_id, sender, key, value )
-/* event_search(event_id,room_id,sender,"key",value) */;
-CREATE TABLE guest_access( event_id TEXT NOT NULL, room_id TEXT NOT NULL, guest_access TEXT NOT NULL, UNIQUE (event_id) );
-CREATE TABLE history_visibility( event_id TEXT NOT NULL, room_id TEXT NOT NULL, history_visibility TEXT NOT NULL, UNIQUE (event_id) );
-CREATE TABLE room_tags( user_id TEXT NOT NULL, room_id TEXT NOT NULL, tag TEXT NOT NULL, content TEXT NOT NULL, CONSTRAINT room_tag_uniqueness UNIQUE (user_id, room_id, tag) );
-CREATE TABLE room_tags_revisions ( user_id TEXT NOT NULL, room_id TEXT NOT NULL, stream_id BIGINT NOT NULL, CONSTRAINT room_tag_revisions_uniqueness UNIQUE (user_id, room_id) );
-CREATE TABLE IF NOT EXISTS "account_data_max_stream_id"( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_id BIGINT NOT NULL, CHECK (Lock='X') );
-CREATE TABLE account_data( user_id TEXT NOT NULL, account_data_type TEXT NOT NULL, stream_id BIGINT NOT NULL, content TEXT NOT NULL, CONSTRAINT account_data_uniqueness UNIQUE (user_id, account_data_type) );
-CREATE TABLE room_account_data( user_id TEXT NOT NULL, room_id TEXT NOT NULL, account_data_type TEXT NOT NULL, stream_id BIGINT NOT NULL, content TEXT NOT NULL, CONSTRAINT room_account_data_uniqueness UNIQUE (user_id, room_id, account_data_type) );
-CREATE INDEX account_data_stream_id on account_data(user_id, stream_id);
-CREATE INDEX room_account_data_stream_id on room_account_data(user_id, stream_id);
-CREATE INDEX events_ts ON events(origin_server_ts, stream_ordering);
-CREATE TABLE event_push_actions( room_id TEXT NOT NULL, event_id TEXT NOT NULL, user_id TEXT NOT NULL, profile_tag VARCHAR(32), actions TEXT NOT NULL, topological_ordering BIGINT, stream_ordering BIGINT, notif SMALLINT, highlight SMALLINT, CONSTRAINT event_id_user_id_profile_tag_uniqueness UNIQUE (room_id, event_id, user_id, profile_tag) );
-CREATE INDEX event_push_actions_room_id_user_id on event_push_actions(room_id, user_id);
-CREATE INDEX events_room_stream on events(room_id, stream_ordering);
-CREATE INDEX public_room_index on rooms(is_public);
-CREATE INDEX receipts_linearized_user ON receipts_linearized( user_id );
-CREATE INDEX event_push_actions_rm_tokens on event_push_actions( user_id, room_id, topological_ordering, stream_ordering );
-CREATE TABLE presence_stream( stream_id BIGINT, user_id TEXT, state TEXT, last_active_ts BIGINT, last_federation_update_ts BIGINT, last_user_sync_ts BIGINT, status_msg TEXT, currently_active BOOLEAN );
-CREATE INDEX presence_stream_id ON presence_stream(stream_id, user_id);
-CREATE INDEX presence_stream_user_id ON presence_stream(user_id);
-CREATE TABLE push_rules_stream( stream_id BIGINT NOT NULL, event_stream_ordering BIGINT NOT NULL, user_id TEXT NOT NULL, rule_id TEXT NOT NULL, op TEXT NOT NULL, priority_class SMALLINT, priority INTEGER, conditions TEXT, actions TEXT );
-CREATE INDEX push_rules_stream_id ON push_rules_stream(stream_id);
-CREATE INDEX push_rules_stream_user_stream_id on push_rules_stream(user_id, stream_id);
-CREATE TABLE ex_outlier_stream( event_stream_ordering BIGINT PRIMARY KEY NOT NULL, event_id TEXT NOT NULL, state_group BIGINT NOT NULL );
-CREATE TABLE threepid_guest_access_tokens( medium TEXT, address TEXT, guest_access_token TEXT, first_inviter TEXT );
-CREATE UNIQUE INDEX threepid_guest_access_tokens_index ON threepid_guest_access_tokens(medium, address);
-CREATE TABLE local_invites( stream_id BIGINT NOT NULL, inviter TEXT NOT NULL, invitee TEXT NOT NULL, event_id TEXT NOT NULL, room_id TEXT NOT NULL, locally_rejected TEXT, replaced_by TEXT );
-CREATE INDEX local_invites_id ON local_invites(stream_id);
-CREATE INDEX local_invites_for_user_idx ON local_invites(invitee, locally_rejected, replaced_by, room_id);
-CREATE INDEX event_push_actions_stream_ordering on event_push_actions( stream_ordering, user_id );
-CREATE TABLE open_id_tokens ( token TEXT NOT NULL PRIMARY KEY, ts_valid_until_ms bigint NOT NULL, user_id TEXT NOT NULL, UNIQUE (token) );
-CREATE INDEX open_id_tokens_ts_valid_until_ms ON open_id_tokens(ts_valid_until_ms);
-CREATE TABLE pusher_throttle( pusher BIGINT NOT NULL, room_id TEXT NOT NULL, last_sent_ts BIGINT, throttle_ms BIGINT, PRIMARY KEY (pusher, room_id) );
-CREATE TABLE event_reports( id BIGINT NOT NULL PRIMARY KEY, received_ts BIGINT NOT NULL, room_id TEXT NOT NULL, event_id TEXT NOT NULL, user_id TEXT NOT NULL, reason TEXT, content TEXT );
-CREATE TABLE devices ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, display_name TEXT, CONSTRAINT device_uniqueness UNIQUE (user_id, device_id) );
-CREATE TABLE appservice_stream_position( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_ordering BIGINT, CHECK (Lock='X') );
-CREATE TABLE device_inbox ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, stream_id BIGINT NOT NULL, message_json TEXT NOT NULL );
-CREATE INDEX device_inbox_user_stream_id ON device_inbox(user_id, device_id, stream_id);
-CREATE INDEX received_transactions_ts ON received_transactions(ts);
-CREATE TABLE device_federation_outbox ( destination TEXT NOT NULL, stream_id BIGINT NOT NULL, queued_ts BIGINT NOT NULL, messages_json TEXT NOT NULL );
-CREATE INDEX device_federation_outbox_destination_id ON device_federation_outbox(destination, stream_id);
-CREATE TABLE device_federation_inbox ( origin TEXT NOT NULL, message_id TEXT NOT NULL, received_ts BIGINT NOT NULL );
-CREATE INDEX device_federation_inbox_sender_id ON device_federation_inbox(origin, message_id);
-CREATE TABLE device_max_stream_id ( stream_id BIGINT NOT NULL );
-CREATE TABLE public_room_list_stream ( stream_id BIGINT NOT NULL, room_id TEXT NOT NULL, visibility BOOLEAN NOT NULL , appservice_id TEXT, network_id TEXT);
-CREATE INDEX public_room_list_stream_idx on public_room_list_stream( stream_id );
-CREATE INDEX public_room_list_stream_rm_idx on public_room_list_stream( room_id, stream_id );
-CREATE TABLE stream_ordering_to_exterm ( stream_ordering BIGINT NOT NULL, room_id TEXT NOT NULL, event_id TEXT NOT NULL );
-CREATE INDEX stream_ordering_to_exterm_idx on stream_ordering_to_exterm( stream_ordering );
-CREATE INDEX stream_ordering_to_exterm_rm_idx on stream_ordering_to_exterm( room_id, stream_ordering );
-CREATE TABLE IF NOT EXISTS "event_auth"( event_id TEXT NOT NULL, auth_id TEXT NOT NULL, room_id TEXT NOT NULL );
-CREATE INDEX evauth_edges_id ON event_auth(event_id);
-CREATE INDEX user_threepids_medium_address on user_threepids (medium, address);
-CREATE TABLE appservice_room_list( appservice_id TEXT NOT NULL, network_id TEXT NOT NULL, room_id TEXT NOT NULL );
-CREATE UNIQUE INDEX appservice_room_list_idx ON appservice_room_list( appservice_id, network_id, room_id );
-CREATE INDEX device_federation_outbox_id ON device_federation_outbox(stream_id);
-CREATE TABLE federation_stream_position( type TEXT NOT NULL, stream_id INTEGER NOT NULL );
-CREATE TABLE device_lists_remote_cache ( user_id TEXT NOT NULL, device_id TEXT NOT NULL, content TEXT NOT NULL );
-CREATE TABLE device_lists_remote_extremeties ( user_id TEXT NOT NULL, stream_id TEXT NOT NULL );
-CREATE TABLE device_lists_stream ( stream_id BIGINT NOT NULL, user_id TEXT NOT NULL, device_id TEXT NOT NULL );
-CREATE INDEX device_lists_stream_id ON device_lists_stream(stream_id, user_id);
-CREATE TABLE device_lists_outbound_pokes ( destination TEXT NOT NULL, stream_id BIGINT NOT NULL, user_id TEXT NOT NULL, device_id TEXT NOT NULL, sent BOOLEAN NOT NULL, ts BIGINT NOT NULL );
-CREATE INDEX device_lists_outbound_pokes_id ON device_lists_outbound_pokes(destination, stream_id);
-CREATE INDEX device_lists_outbound_pokes_user ON device_lists_outbound_pokes(destination, user_id);
-CREATE TABLE event_push_summary ( user_id TEXT NOT NULL, room_id TEXT NOT NULL, notif_count BIGINT NOT NULL, stream_ordering BIGINT NOT NULL );
-CREATE INDEX event_push_summary_user_rm ON event_push_summary(user_id, room_id);
-CREATE TABLE event_push_summary_stream_ordering ( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_ordering BIGINT NOT NULL, CHECK (Lock='X') );
-CREATE TABLE IF NOT EXISTS "pushers" ( id BIGINT PRIMARY KEY, user_name TEXT NOT NULL, access_token BIGINT DEFAULT NULL, profile_tag TEXT NOT NULL, kind TEXT NOT NULL, app_id TEXT NOT NULL, app_display_name TEXT NOT NULL, device_display_name TEXT NOT NULL, pushkey TEXT NOT NULL, ts BIGINT NOT NULL, lang TEXT, data TEXT, last_stream_ordering INTEGER, last_success BIGINT, failing_since BIGINT, UNIQUE (app_id, pushkey, user_name) );
-CREATE INDEX device_lists_outbound_pokes_stream ON device_lists_outbound_pokes(stream_id);
-CREATE TABLE ratelimit_override ( user_id TEXT NOT NULL, messages_per_second BIGINT, burst_count BIGINT );
-CREATE UNIQUE INDEX ratelimit_override_idx ON ratelimit_override(user_id);
-CREATE TABLE current_state_delta_stream ( stream_id BIGINT NOT NULL, room_id TEXT NOT NULL, type TEXT NOT NULL, state_key TEXT NOT NULL, event_id TEXT, prev_event_id TEXT );
-CREATE INDEX current_state_delta_stream_idx ON current_state_delta_stream(stream_id);
-CREATE TABLE device_lists_outbound_last_success ( destination TEXT NOT NULL, user_id TEXT NOT NULL, stream_id BIGINT NOT NULL );
-CREATE INDEX device_lists_outbound_last_success_idx ON device_lists_outbound_last_success( destination, user_id, stream_id );
-CREATE TABLE user_directory_stream_pos ( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_id BIGINT, CHECK (Lock='X') );
-CREATE VIRTUAL TABLE user_directory_search USING fts4 ( user_id, value )
-/* user_directory_search(user_id,value) */;
-CREATE TABLE blocked_rooms ( room_id TEXT NOT NULL, user_id TEXT NOT NULL );
-CREATE UNIQUE INDEX blocked_rooms_idx ON blocked_rooms(room_id);
-CREATE TABLE IF NOT EXISTS "local_media_repository_url_cache"( url TEXT, response_code INTEGER, etag TEXT, expires_ts BIGINT, og TEXT, media_id TEXT, download_ts BIGINT );
-CREATE INDEX local_media_repository_url_cache_expires_idx ON local_media_repository_url_cache(expires_ts);
-CREATE INDEX local_media_repository_url_cache_by_url_download_ts ON local_media_repository_url_cache(url, download_ts);
-CREATE INDEX local_media_repository_url_cache_media_idx ON local_media_repository_url_cache(media_id);
-CREATE TABLE group_users ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, is_admin BOOLEAN NOT NULL, is_public BOOLEAN NOT NULL );
-CREATE TABLE group_invites ( group_id TEXT NOT NULL, user_id TEXT NOT NULL );
-CREATE TABLE group_rooms ( group_id TEXT NOT NULL, room_id TEXT NOT NULL, is_public BOOLEAN NOT NULL );
-CREATE TABLE group_summary_rooms ( group_id TEXT NOT NULL, room_id TEXT NOT NULL, category_id TEXT NOT NULL, room_order BIGINT NOT NULL, is_public BOOLEAN NOT NULL, UNIQUE (group_id, category_id, room_id, room_order), CHECK (room_order > 0) );
-CREATE UNIQUE INDEX group_summary_rooms_g_idx ON group_summary_rooms(group_id, room_id, category_id);
-CREATE TABLE group_summary_room_categories ( group_id TEXT NOT NULL, category_id TEXT NOT NULL, cat_order BIGINT NOT NULL, UNIQUE (group_id, category_id, cat_order), CHECK (cat_order > 0) );
-CREATE TABLE group_room_categories ( group_id TEXT NOT NULL, category_id TEXT NOT NULL, profile TEXT NOT NULL, is_public BOOLEAN NOT NULL, UNIQUE (group_id, category_id) );
-CREATE TABLE group_summary_users ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, role_id TEXT NOT NULL, user_order BIGINT NOT NULL, is_public BOOLEAN NOT NULL );
-CREATE INDEX group_summary_users_g_idx ON group_summary_users(group_id);
-CREATE TABLE group_summary_roles ( group_id TEXT NOT NULL, role_id TEXT NOT NULL, role_order BIGINT NOT NULL, UNIQUE (group_id, role_id, role_order), CHECK (role_order > 0) );
-CREATE TABLE group_roles ( group_id TEXT NOT NULL, role_id TEXT NOT NULL, profile TEXT NOT NULL, is_public BOOLEAN NOT NULL, UNIQUE (group_id, role_id) );
-CREATE TABLE group_attestations_renewals ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, valid_until_ms BIGINT NOT NULL );
-CREATE INDEX group_attestations_renewals_g_idx ON group_attestations_renewals(group_id, user_id);
-CREATE INDEX group_attestations_renewals_u_idx ON group_attestations_renewals(user_id);
-CREATE INDEX group_attestations_renewals_v_idx ON group_attestations_renewals(valid_until_ms);
-CREATE TABLE group_attestations_remote ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, valid_until_ms BIGINT NOT NULL, attestation_json TEXT NOT NULL );
-CREATE INDEX group_attestations_remote_g_idx ON group_attestations_remote(group_id, user_id);
-CREATE INDEX group_attestations_remote_u_idx ON group_attestations_remote(user_id);
-CREATE INDEX group_attestations_remote_v_idx ON group_attestations_remote(valid_until_ms);
-CREATE TABLE local_group_membership ( group_id TEXT NOT NULL, user_id TEXT NOT NULL, is_admin BOOLEAN NOT NULL, membership TEXT NOT NULL, is_publicised BOOLEAN NOT NULL, content TEXT NOT NULL );
-CREATE INDEX local_group_membership_u_idx ON local_group_membership(user_id, group_id);
-CREATE INDEX local_group_membership_g_idx ON local_group_membership(group_id);
-CREATE TABLE local_group_updates ( stream_id BIGINT NOT NULL, group_id TEXT NOT NULL, user_id TEXT NOT NULL, type TEXT NOT NULL, content TEXT NOT NULL );
-CREATE TABLE remote_profile_cache ( user_id TEXT NOT NULL, displayname TEXT, avatar_url TEXT, last_check BIGINT NOT NULL );
-CREATE UNIQUE INDEX remote_profile_cache_user_id ON remote_profile_cache(user_id);
-CREATE INDEX remote_profile_cache_time ON remote_profile_cache(last_check);
-CREATE TABLE IF NOT EXISTS "deleted_pushers" ( stream_id BIGINT NOT NULL, app_id TEXT NOT NULL, pushkey TEXT NOT NULL, user_id TEXT NOT NULL );
-CREATE INDEX deleted_pushers_stream_id ON deleted_pushers (stream_id);
-CREATE TABLE IF NOT EXISTS "groups" ( group_id TEXT NOT NULL, name TEXT, avatar_url TEXT, short_description TEXT, long_description TEXT, is_public BOOL NOT NULL , join_policy TEXT NOT NULL DEFAULT 'invite');
-CREATE UNIQUE INDEX groups_idx ON groups(group_id);
-CREATE TABLE IF NOT EXISTS "user_directory" ( user_id TEXT NOT NULL, room_id TEXT, display_name TEXT, avatar_url TEXT );
-CREATE INDEX user_directory_room_idx ON user_directory(room_id);
-CREATE UNIQUE INDEX user_directory_user_idx ON user_directory(user_id);
-CREATE TABLE event_push_actions_staging ( event_id TEXT NOT NULL, user_id TEXT NOT NULL, actions TEXT NOT NULL, notif SMALLINT NOT NULL, highlight SMALLINT NOT NULL );
-CREATE INDEX event_push_actions_staging_id ON event_push_actions_staging(event_id);
-CREATE TABLE users_pending_deactivation ( user_id TEXT NOT NULL );
-CREATE UNIQUE INDEX group_invites_g_idx ON group_invites(group_id, user_id);
-CREATE UNIQUE INDEX group_users_g_idx ON group_users(group_id, user_id);
-CREATE INDEX group_users_u_idx ON group_users(user_id);
-CREATE INDEX group_invites_u_idx ON group_invites(user_id);
-CREATE UNIQUE INDEX group_rooms_g_idx ON group_rooms(group_id, room_id);
-CREATE INDEX group_rooms_r_idx ON group_rooms(room_id);
-CREATE TABLE user_daily_visits ( user_id TEXT NOT NULL, device_id TEXT, timestamp BIGINT NOT NULL );
-CREATE INDEX user_daily_visits_uts_idx ON user_daily_visits(user_id, timestamp);
-CREATE INDEX user_daily_visits_ts_idx ON user_daily_visits(timestamp);
-CREATE TABLE erased_users ( user_id TEXT NOT NULL );
-CREATE UNIQUE INDEX erased_users_user ON erased_users(user_id);
-CREATE TABLE monthly_active_users ( user_id TEXT NOT NULL, timestamp BIGINT NOT NULL );
-CREATE UNIQUE INDEX monthly_active_users_users ON monthly_active_users(user_id);
-CREATE INDEX monthly_active_users_time_stamp ON monthly_active_users(timestamp);
-CREATE TABLE IF NOT EXISTS "e2e_room_keys_versions" ( user_id TEXT NOT NULL, version BIGINT NOT NULL, algorithm TEXT NOT NULL, auth_data TEXT NOT NULL, deleted SMALLINT DEFAULT 0 NOT NULL );
-CREATE UNIQUE INDEX e2e_room_keys_versions_idx ON e2e_room_keys_versions(user_id, version);
-CREATE TABLE IF NOT EXISTS "e2e_room_keys" ( user_id TEXT NOT NULL, room_id TEXT NOT NULL, session_id TEXT NOT NULL, version BIGINT NOT NULL, first_message_index INT, forwarded_count INT, is_verified BOOLEAN, session_data TEXT NOT NULL );
-CREATE UNIQUE INDEX e2e_room_keys_idx ON e2e_room_keys(user_id, room_id, session_id);
-CREATE TABLE users_who_share_private_rooms ( user_id TEXT NOT NULL, other_user_id TEXT NOT NULL, room_id TEXT NOT NULL );
-CREATE UNIQUE INDEX users_who_share_private_rooms_u_idx ON users_who_share_private_rooms(user_id, other_user_id, room_id);
-CREATE INDEX users_who_share_private_rooms_r_idx ON users_who_share_private_rooms(room_id);
-CREATE INDEX users_who_share_private_rooms_o_idx ON users_who_share_private_rooms(other_user_id);
-CREATE TABLE user_threepid_id_server ( user_id TEXT NOT NULL, medium TEXT NOT NULL, address TEXT NOT NULL, id_server TEXT NOT NULL );
-CREATE UNIQUE INDEX user_threepid_id_server_idx ON user_threepid_id_server( user_id, medium, address, id_server );
-CREATE TABLE users_in_public_rooms ( user_id TEXT NOT NULL, room_id TEXT NOT NULL );
-CREATE UNIQUE INDEX users_in_public_rooms_u_idx ON users_in_public_rooms(user_id, room_id);
-CREATE TABLE account_validity ( user_id TEXT PRIMARY KEY, expiration_ts_ms BIGINT NOT NULL, email_sent BOOLEAN NOT NULL, renewal_token TEXT );
-CREATE TABLE event_relations ( event_id TEXT NOT NULL, relates_to_id TEXT NOT NULL, relation_type TEXT NOT NULL, aggregation_key TEXT );
-CREATE UNIQUE INDEX event_relations_id ON event_relations(event_id);
-CREATE INDEX event_relations_relates ON event_relations(relates_to_id, relation_type, aggregation_key);
-CREATE TABLE stats_stream_pos ( Lock CHAR(1) NOT NULL DEFAULT 'X' UNIQUE, stream_id BIGINT, CHECK (Lock='X') );
-CREATE TABLE user_stats ( user_id TEXT NOT NULL, ts BIGINT NOT NULL, bucket_size INT NOT NULL, public_rooms INT NOT NULL, private_rooms INT NOT NULL );
-CREATE UNIQUE INDEX user_stats_user_ts ON user_stats(user_id, ts);
-CREATE TABLE room_stats ( room_id TEXT NOT NULL, ts BIGINT NOT NULL, bucket_size INT NOT NULL, current_state_events INT NOT NULL, joined_members INT NOT NULL, invited_members INT NOT NULL, left_members INT NOT NULL, banned_members INT NOT NULL, state_events INT NOT NULL );
-CREATE UNIQUE INDEX room_stats_room_ts ON room_stats(room_id, ts);
-CREATE TABLE room_state ( room_id TEXT NOT NULL, join_rules TEXT, history_visibility TEXT, encryption TEXT, name TEXT, topic TEXT, avatar TEXT, canonical_alias TEXT );
-CREATE UNIQUE INDEX room_state_room ON room_state(room_id);
-CREATE TABLE room_stats_earliest_token ( room_id TEXT NOT NULL, token BIGINT NOT NULL );
-CREATE UNIQUE INDEX room_stats_earliest_token_idx ON room_stats_earliest_token(room_id);
-CREATE INDEX access_tokens_device_id ON access_tokens (user_id, device_id);
-CREATE INDEX user_ips_device_id ON user_ips (user_id, device_id, last_seen);
-CREATE INDEX event_contains_url_index ON events (room_id, topological_ordering, stream_ordering);
-CREATE INDEX event_push_actions_u_highlight ON event_push_actions (user_id, stream_ordering);
-CREATE INDEX event_push_actions_highlights_index ON event_push_actions (user_id, room_id, topological_ordering, stream_ordering);
-CREATE INDEX current_state_events_member_index ON current_state_events (state_key);
-CREATE INDEX device_inbox_stream_id_user_id ON device_inbox (stream_id, user_id);
-CREATE INDEX device_lists_stream_user_id ON device_lists_stream (user_id, device_id);
-CREATE INDEX local_media_repository_url_idx ON local_media_repository (created_ts);
-CREATE INDEX user_ips_last_seen ON user_ips (user_id, last_seen);
-CREATE INDEX user_ips_last_seen_only ON user_ips (last_seen);
-CREATE INDEX users_creation_ts ON users (creation_ts);
-CREATE INDEX event_to_state_groups_sg_index ON event_to_state_groups (state_group);
-CREATE UNIQUE INDEX device_lists_remote_cache_unique_id ON device_lists_remote_cache (user_id, device_id);
-CREATE UNIQUE INDEX device_lists_remote_extremeties_unique_idx ON device_lists_remote_extremeties (user_id);
-CREATE UNIQUE INDEX user_ips_user_token_ip_unique_index ON user_ips (user_id, access_token, ip);
diff --git a/synapse/storage/databases/main/schema/full_schemas/54/stream_positions.sql b/synapse/storage/databases/main/schema/full_schemas/54/stream_positions.sql
deleted file mode 100644
index 91d21b2921..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/54/stream_positions.sql
+++ /dev/null
@@ -1,8 +0,0 @@
-
-INSERT INTO appservice_stream_position (stream_ordering) SELECT COALESCE(MAX(stream_ordering), 0) FROM events;
-INSERT INTO federation_stream_position (type, stream_id) VALUES ('federation', -1);
-INSERT INTO federation_stream_position (type, stream_id) SELECT 'events', coalesce(max(stream_ordering), -1) FROM events;
-INSERT INTO user_directory_stream_pos (stream_id) VALUES (0);
-INSERT INTO stats_stream_pos (stream_id) VALUES (0);
-INSERT INTO event_push_summary_stream_ordering (stream_ordering) VALUES (0);
--- device_max_stream_id is handled separately in 56/device_stream_id_insert.sql
\ No newline at end of file
diff --git a/synapse/storage/databases/main/schema/full_schemas/README.md b/synapse/storage/databases/main/schema/full_schemas/README.md
deleted file mode 100644
index c00f287190..0000000000
--- a/synapse/storage/databases/main/schema/full_schemas/README.md
+++ /dev/null
@@ -1,21 +0,0 @@
-# Synapse Database Schemas
-
-These schemas are used as a basis to create brand new Synapse databases, on both
-SQLite3 and Postgres.
-
-## Building full schema dumps
-
-If you want to recreate these schemas, they need to be made from a database that
-has had all background updates run.
-
-To do so, use `scripts-dev/make_full_schema.sh`. This will produce new
-`full.sql.postgres ` and `full.sql.sqlite` files.
-
-Ensure postgres is installed and your user has the ability to run bash commands
-such as `createdb`, then call
-
- ./scripts-dev/make_full_schema.sh -p postgres_username -o output_dir/
-
-There are currently two folders with full-schema snapshots. `16` is a snapshot
-from 2015, for historical reference. The other contains the most recent full
-schema snapshot.
diff --git a/synapse/storage/databases/state/schema/delta/23/drop_state_index.sql b/synapse/storage/databases/state/schema/delta/23/drop_state_index.sql
deleted file mode 100644
index ae09fa0065..0000000000
--- a/synapse/storage/databases/state/schema/delta/23/drop_state_index.sql
+++ /dev/null
@@ -1,16 +0,0 @@
-/* Copyright 2015, 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-DROP INDEX IF EXISTS state_groups_state_tuple;
diff --git a/synapse/storage/databases/state/schema/delta/30/state_stream.sql b/synapse/storage/databases/state/schema/delta/30/state_stream.sql
deleted file mode 100644
index e85699e82e..0000000000
--- a/synapse/storage/databases/state/schema/delta/30/state_stream.sql
+++ /dev/null
@@ -1,33 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
-/* We used to create a table called current_state_resets, but this is no
- * longer used and is removed in delta 54.
- */
-
-/* The outlier events that have aquired a state group typically through
- * backfill. This is tracked separately to the events table, as assigning a
- * state group change the position of the existing event in the stream
- * ordering.
- * However since a stream_ordering is assigned in persist_event for the
- * (event, state) pair, we can use that stream_ordering to identify when
- * the new state was assigned for the event.
- */
-CREATE TABLE IF NOT EXISTS ex_outlier_stream(
- event_stream_ordering BIGINT PRIMARY KEY NOT NULL,
- event_id TEXT NOT NULL,
- state_group BIGINT NOT NULL
-);
diff --git a/synapse/storage/databases/state/schema/delta/32/remove_state_indices.sql b/synapse/storage/databases/state/schema/delta/32/remove_state_indices.sql
deleted file mode 100644
index 1450313bfa..0000000000
--- a/synapse/storage/databases/state/schema/delta/32/remove_state_indices.sql
+++ /dev/null
@@ -1,19 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-
--- The following indices are redundant, other indices are equivalent or
--- supersets
-DROP INDEX IF EXISTS state_groups_id; -- Duplicate of PRIMARY KEY
diff --git a/synapse/storage/databases/state/schema/delta/35/add_state_index.sql b/synapse/storage/databases/state/schema/delta/35/add_state_index.sql
deleted file mode 100644
index 33980d02f0..0000000000
--- a/synapse/storage/databases/state/schema/delta/35/add_state_index.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json, depends_on)
- VALUES ('state_group_state_type_index', '{}', 'state_group_state_deduplication');
diff --git a/synapse/storage/databases/state/schema/delta/35/state.sql b/synapse/storage/databases/state/schema/delta/35/state.sql
deleted file mode 100644
index 0f1fa68a89..0000000000
--- a/synapse/storage/databases/state/schema/delta/35/state.sql
+++ /dev/null
@@ -1,22 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-CREATE TABLE state_group_edges(
- state_group BIGINT NOT NULL,
- prev_state_group BIGINT NOT NULL
-);
-
-CREATE INDEX state_group_edges_idx ON state_group_edges(state_group);
-CREATE INDEX state_group_edges_prev_idx ON state_group_edges(prev_state_group);
diff --git a/synapse/storage/databases/state/schema/delta/35/state_dedupe.sql b/synapse/storage/databases/state/schema/delta/35/state_dedupe.sql
deleted file mode 100644
index 97e5067ef4..0000000000
--- a/synapse/storage/databases/state/schema/delta/35/state_dedupe.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2016 OpenMarket Ltd
- *
- * 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.
- */
-
-INSERT into background_updates (update_name, progress_json)
- VALUES ('state_group_state_deduplication', '{}');
diff --git a/synapse/storage/databases/state/schema/delta/47/state_group_seq.py b/synapse/storage/databases/state/schema/delta/47/state_group_seq.py
deleted file mode 100644
index 9fd1ccf6f7..0000000000
--- a/synapse/storage/databases/state/schema/delta/47/state_group_seq.py
+++ /dev/null
@@ -1,34 +0,0 @@
-# Copyright 2018 New Vector Ltd
-#
-# 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.
-
-from synapse.storage.engines import PostgresEngine
-
-
-def run_create(cur, database_engine, *args, **kwargs):
- if isinstance(database_engine, PostgresEngine):
- # if we already have some state groups, we want to start making new
- # ones with a higher id.
- cur.execute("SELECT max(id) FROM state_groups")
- row = cur.fetchone()
-
- if row[0] is None:
- start_val = 1
- else:
- start_val = row[0] + 1
-
- cur.execute("CREATE SEQUENCE state_group_id_seq START WITH %s", (start_val,))
-
-
-def run_upgrade(*args, **kwargs):
- pass
diff --git a/synapse/storage/databases/state/schema/delta/56/state_group_room_idx.sql b/synapse/storage/databases/state/schema/delta/56/state_group_room_idx.sql
deleted file mode 100644
index 7916ef18b2..0000000000
--- a/synapse/storage/databases/state/schema/delta/56/state_group_room_idx.sql
+++ /dev/null
@@ -1,17 +0,0 @@
-/* Copyright 2019 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.
- */
-
-INSERT INTO background_updates (update_name, progress_json) VALUES
- ('state_groups_room_id_idx', '{}');
diff --git a/synapse/storage/databases/state/schema/full_schemas/54/full.sql b/synapse/storage/databases/state/schema/full_schemas/54/full.sql
deleted file mode 100644
index 35f97d6b3d..0000000000
--- a/synapse/storage/databases/state/schema/full_schemas/54/full.sql
+++ /dev/null
@@ -1,37 +0,0 @@
-/* Copyright 2019 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.
- */
-
-CREATE TABLE state_groups (
- id BIGINT PRIMARY KEY,
- room_id TEXT NOT NULL,
- event_id TEXT NOT NULL
-);
-
-CREATE TABLE state_groups_state (
- state_group BIGINT NOT NULL,
- room_id TEXT NOT NULL,
- type TEXT NOT NULL,
- state_key TEXT NOT NULL,
- event_id TEXT NOT NULL
-);
-
-CREATE TABLE state_group_edges (
- state_group BIGINT NOT NULL,
- prev_state_group BIGINT NOT NULL
-);
-
-CREATE INDEX state_group_edges_idx ON state_group_edges (state_group);
-CREATE INDEX state_group_edges_prev_idx ON state_group_edges (prev_state_group);
-CREATE INDEX state_groups_state_type_idx ON state_groups_state (state_group, type, state_key);
diff --git a/synapse/storage/databases/state/schema/full_schemas/54/sequence.sql.postgres b/synapse/storage/databases/state/schema/full_schemas/54/sequence.sql.postgres
deleted file mode 100644
index fcd926c9fb..0000000000
--- a/synapse/storage/databases/state/schema/full_schemas/54/sequence.sql.postgres
+++ /dev/null
@@ -1,21 +0,0 @@
-/* Copyright 2019 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.
- */
-
-CREATE SEQUENCE state_group_id_seq
- START WITH 1
- INCREMENT BY 1
- NO MINVALUE
- NO MAXVALUE
- CACHE 1;
|