diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2019-12-19 14:53:15 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-19 14:53:15 +0000 |
commit | bca30cefee3849813565dd71e571172818629d85 (patch) | |
tree | d958b04ebf70806c7f57e0a0c49acaf055811b61 | |
parent | Fix sdnotify with acme enabled (#6571) (diff) | |
download | synapse-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.misc | 1 | ||||
-rw-r--r-- | synapse/app/homeserver.py | 9 | ||||
-rw-r--r-- | synapse/storage/prepare_database.py | 5 |
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, |