diff options
author | Erik Johnston <erik@matrix.org> | 2021-01-07 11:33:36 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-01-07 11:33:36 +0000 |
commit | eee3c3c52f59661a95f2f626edc97fac295817d6 (patch) | |
tree | 4814b72d6d575c073380f8f0748da6c81f7d33bc | |
parent | Empty iterables should count towards cache usage. (#9028) (diff) | |
download | synapse-eee3c3c52f59661a95f2f626edc97fac295817d6.tar.xz |
Handle updating schema version without any deltas. (#9033)
This can happen when using a split out state database and we've upgraded the schema version without there being any changes in the state schema.
-rw-r--r-- | changelog.d/9033.misc | 1 | ||||
-rw-r--r-- | synapse/storage/prepare_database.py | 17 |
2 files changed, 11 insertions, 7 deletions
diff --git a/changelog.d/9033.misc b/changelog.d/9033.misc new file mode 100644 index 0000000000..e9a305c0e8 --- /dev/null +++ b/changelog.d/9033.misc @@ -0,0 +1 @@ +Allow bumping schema version when using split out state database. diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py index f91a2eae7a..6684403a0a 100644 --- a/synapse/storage/prepare_database.py +++ b/synapse/storage/prepare_database.py @@ -375,7 +375,16 @@ def _upgrade_existing_database( specific_engine_extensions = (".sqlite", ".postgres") for v in range(start_ver, SCHEMA_VERSION + 1): - logger.info("Applying schema deltas for v%d", v) + if not is_worker: + logger.info("Applying schema deltas for v%d", v) + + cur.execute("DELETE FROM schema_version") + cur.execute( + "INSERT INTO schema_version (version, upgraded) VALUES (?,?)", + (v, True), + ) + else: + logger.info("Checking schema deltas for v%d", v) # We need to search both the global and per data store schema # directories for schema updates. @@ -489,12 +498,6 @@ def _upgrade_existing_database( (v, relative_path), ) - cur.execute("DELETE FROM schema_version") - cur.execute( - "INSERT INTO schema_version (version, upgraded) VALUES (?,?)", - (v, True), - ) - logger.info("Schema now up to date") |