diff options
author | Erik Johnston <erik@matrix.org> | 2020-01-06 14:44:01 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-01-06 14:44:01 +0000 |
commit | 9f6c1befbbb0279dca261b105148e633c3d45453 (patch) | |
tree | fa5745c2e7a7c333447125774a217ba5a1e0bc91 /synapse/storage | |
parent | Fix an error which was thrown by the PresenceHandler _on_shutdown handler. (#... (diff) | |
download | synapse-9f6c1befbbb0279dca261b105148e633c3d45453.tar.xz |
Add experimental 'databases' config (#6580)
Diffstat (limited to 'synapse/storage')
-rw-r--r-- | synapse/storage/data_stores/__init__.py | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/synapse/storage/data_stores/__init__.py b/synapse/storage/data_stores/__init__.py index d20df5f076..092e803799 100644 --- a/synapse/storage/data_stores/__init__.py +++ b/synapse/storage/data_stores/__init__.py @@ -37,6 +37,8 @@ class DataStores(object): # store. self.databases = [] + self.main = None + self.state = None for database_config in hs.config.database.databases: db_name = database_config.name @@ -54,10 +56,22 @@ class DataStores(object): if "main" in database_config.data_stores: logger.info("Starting 'main' data store") + + # Sanity check we don't try and configure the main store on + # multiple databases. + if self.main: + raise Exception("'main' data store already configured") + self.main = main_store_class(database, db_conn, hs) if "state" in database_config.data_stores: logger.info("Starting 'state' data store") + + # Sanity check we don't try and configure the state store on + # multiple databases. + if self.state: + raise Exception("'state' data store already configured") + self.state = StateGroupDataStore(database, db_conn, hs) db_conn.commit() @@ -65,3 +79,10 @@ class DataStores(object): self.databases.append(database) logger.info("Database %r prepared", db_name) + + # Sanity check that we have actually configured all the required stores. + if not self.main: + raise Exception("No 'main' data store configured") + + if not self.state: + raise Exception("No 'main' data store configured") |