diff options
author | Richard van der Hoff <richard@matrix.org> | 2020-01-09 17:46:52 +0000 |
---|---|---|
committer | Richard van der Hoff <richard@matrix.org> | 2020-01-09 18:11:04 +0000 |
commit | bf468211805900e767b6b07a2bfa6046f70efb7a (patch) | |
tree | d6dacf0d5eeb1218889f5bb8919869a25131fab0 /synapse | |
parent | Check postgres version in check_database (diff) | |
download | synapse-bf468211805900e767b6b07a2bfa6046f70efb7a.tar.xz |
Refuse to start if sqlite is older than 3.11.0
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/storage/engines/postgres.py | 4 | ||||
-rw-r--r-- | synapse/storage/engines/sqlite.py | 7 |
2 files changed, 7 insertions, 4 deletions
diff --git a/synapse/storage/engines/postgres.py b/synapse/storage/engines/postgres.py index 2a285e018c..c84cb452b0 100644 --- a/synapse/storage/engines/postgres.py +++ b/synapse/storage/engines/postgres.py @@ -32,7 +32,7 @@ class PostgresEngine(object): self.synchronous_commit = database_config.get("synchronous_commit", True) self._version = None # unknown as yet - def check_database(self, db_conn): + def check_database(self, db_conn, allow_outdated_version: bool = False): # Get the version of PostgreSQL that we're using. As per the psycopg2 # docs: The number is formed by converting the major, minor, and # revision numbers into two-decimal-digit numbers and appending them @@ -40,7 +40,7 @@ class PostgresEngine(object): self._version = db_conn.server_version # Are we on a supported PostgreSQL version? - if self._version < 90500: + if not allow_outdated_version and self._version < 90500: raise RuntimeError("Synapse requires PostgreSQL 9.5+ or above.") with db_conn.cursor() as txn: diff --git a/synapse/storage/engines/sqlite.py b/synapse/storage/engines/sqlite.py index 3b3c13360b..cbf52f5191 100644 --- a/synapse/storage/engines/sqlite.py +++ b/synapse/storage/engines/sqlite.py @@ -53,8 +53,11 @@ class Sqlite3Engine(object): """ return False - def check_database(self, db_conn): - pass + def check_database(self, db_conn, allow_outdated_version: bool = False): + if not allow_outdated_version: + version = self.module.sqlite_version_info + if version < (3, 11, 0): + raise RuntimeError("Synapse requires sqlite 3.11 or above.") def convert_param_style(self, sql): return sql |