summary refs log tree commit diff
path: root/synapse/config/database.py
diff options
context:
space:
mode:
authorJorik Schellekens <joriksch@gmail.com>2019-08-28 13:12:22 +0100
committerGitHub <noreply@github.com>2019-08-28 13:12:22 +0100
commit6d97843793d59bc5d307475a6a6185ff107e116b (patch)
tree2fbc743fc3f10df4147fa5142f2175f583483554 /synapse/config/database.py
parentImplement a structured logging output system. (#5680) (diff)
downloadsynapse-6d97843793d59bc5d307475a6a6185ff107e116b.tar.xz
Config templating (#5900)
Template config files

* Imagine a system composed entirely of x, y, z etc and the basic operations..

Wait George, why XOR? Why not just neq?

George: Eh, I didn't think of that..

Co-Authored-By: Erik Johnston <erik@matrix.org>
Diffstat (limited to 'synapse/config/database.py')
-rw-r--r--synapse/config/database.py27
1 files changed, 19 insertions, 8 deletions
diff --git a/synapse/config/database.py b/synapse/config/database.py
index 746a6cd1f4..118aafbd4a 100644
--- a/synapse/config/database.py
+++ b/synapse/config/database.py
@@ -13,6 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 import os
+from textwrap import indent
+
+import yaml
 
 from ._base import Config
 
@@ -38,20 +41,28 @@ class DatabaseConfig(Config):
 
         self.set_databasepath(config.get("database_path"))
 
-    def generate_config_section(self, data_dir_path, **kwargs):
-        database_path = os.path.join(data_dir_path, "homeserver.db")
-        return (
-            """\
-        ## Database ##
-
-        database:
-          # The database engine name
+    def generate_config_section(self, data_dir_path, database_conf, **kwargs):
+        if not database_conf:
+            database_path = os.path.join(data_dir_path, "homeserver.db")
+            database_conf = (
+                """# The database engine name
           name: "sqlite3"
           # Arguments to pass to the engine
           args:
             # Path to the database
             database: "%(database_path)s"
+            """
+                % locals()
+            )
+        else:
+            database_conf = indent(yaml.dump(database_conf), " " * 10).lstrip()
+
+        return (
+            """\
+        ## Database ##
 
+        database:
+          %(database_conf)s
         # Number of events to cache in memory.
         #
         #event_cache_size: 10K