summary refs log tree commit diff
diff options
context:
space:
mode:
authorRichard van der Hoff <1389908+richvdh@users.noreply.github.com>2019-12-19 14:53:15 +0000
committerGitHub <noreply@github.com>2019-12-19 14:53:15 +0000
commitbca30cefee3849813565dd71e571172818629d85 (patch)
treed958b04ebf70806c7f57e0a0c49acaf055811b61
parentFix sdnotify with acme enabled (#6571) (diff)
downloadsynapse-bca30cefee3849813565dd71e571172818629d85.tar.xz
Improve diagnostics on database upgrade failure (#6570)
`Failed to upgrade database` is not helpful, and it's unlikely that UPGRADE.rst
has anything useful.
-rw-r--r--changelog.d/6570.misc1
-rw-r--r--synapse/app/homeserver.py9
-rw-r--r--synapse/storage/prepare_database.py5
3 files changed, 7 insertions, 8 deletions
diff --git a/changelog.d/6570.misc b/changelog.d/6570.misc
new file mode 100644

index 0000000000..e89955a51e --- /dev/null +++ b/changelog.d/6570.misc
@@ -0,0 +1 @@ +Improve diagnostics on database upgrade failure. diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index b8661457e2..0e9bf7f53a 100644 --- a/synapse/app/homeserver.py +++ b/synapse/app/homeserver.py
@@ -342,13 +342,8 @@ def setup(config_options): hs.setup() except IncorrectDatabaseSetup as e: quit_with_error(str(e)) - except UpgradeDatabaseException: - sys.stderr.write( - "\nFailed to upgrade database.\n" - "Have you checked for version specific instructions in" - " UPGRADES.rst?\n" - ) - sys.exit(1) + except UpgradeDatabaseException as e: + quit_with_error("Failed to upgrade database: %s" % (e,)) hs.setup_master() diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py
index b4194b44ee..0195edf4ac 100644 --- a/synapse/storage/prepare_database.py +++ b/synapse/storage/prepare_database.py
@@ -69,7 +69,10 @@ def prepare_database(db_conn, database_engine, config, data_stores=["main"]): if user_version != SCHEMA_VERSION: # If we don't pass in a config file then we are expecting to # have already upgraded the DB. - raise UpgradeDatabaseException("Database needs to be upgraded") + raise UpgradeDatabaseException( + "Expected database schema version %i but got %i" + % (SCHEMA_VERSION, user_version) + ) else: _upgrade_existing_database( cur,