summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'synapse')
-rwxr-xr-xsynapse/app/homeserver.py15
1 files changed, 12 insertions, 3 deletions
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index b185b2f569..1ab6effd5f 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -365,7 +365,9 @@ def setup(config_options):
     else:
         db_config = {
             "name": "sqlite3",
-            "database": config.database_path,
+            "args": {
+                "database": config.database_path,
+            },
         }
 
     db_config = {
@@ -381,10 +383,12 @@ def setup(config_options):
             "use_unicode": True,
         })
     elif name == "sqlite3":
+        def open_fun(conn):
+            prepare_database(conn, database_engine)
         db_config.setdefault("args", {}).update({
             "cp_min": 1,
             "cp_max": 1,
-            "cp_openfun": prepare_database,
+            "cp_openfun": open_fun,
         })
     else:
         raise RuntimeError("Unsupported database type '%s'" % (name,))
@@ -413,7 +417,12 @@ def setup(config_options):
     logger.info("Preparing database: %s...", db_name)
 
     try:
-        db_conn = database_engine.module.connect(**db_config.get("args", {}))
+        db_conn = database_engine.module.connect(
+            **{
+                k: v for k, v in db_config.get("args", {}).items()
+                if not k.startswith("cp_")
+            }
+        )
 
         if name == "sqlite3":
             prepare_sqlite3_database(db_conn)