Skip to content
Snippets Groups Projects
Commit 1ef66cc3 authored by Erik Johnston's avatar Erik Johnston
Browse files

Move database configuration into config module

parent 416a3e6c
No related branches found
Tags v1.72.0rc1
No related merge requests found
...@@ -350,42 +350,15 @@ def setup(config_options): ...@@ -350,42 +350,15 @@ def setup(config_options):
tls_context_factory = context_factory.ServerContextFactory(config) tls_context_factory = context_factory.ServerContextFactory(config)
if config.database_config: database_engine = create_engine(config.database_config["name"])
with open(config.database_config, 'r') as f: config.database_config["args"]["cp_openfun"] = database_engine.on_new_connection
db_config = yaml.safe_load(f)
else:
db_config = {
"name": "sqlite3",
"args": {
"database": config.database_path,
},
}
db_config = {
k: v for k, v in db_config.items()
}
name = db_config.get("name", None)
if name == "psycopg2":
pass
elif name == "sqlite3":
db_config.setdefault("args", {}).update({
"cp_min": 1,
"cp_max": 1,
"check_same_thread": False,
})
else:
raise RuntimeError("Unsupported database type '%s'" % (name,))
database_engine = create_engine(name)
db_config["args"]["cp_openfun"] = database_engine.on_new_connection
hs = SynapseHomeServer( hs = SynapseHomeServer(
config.server_name, config.server_name,
domain_with_port=domain_with_port, domain_with_port=domain_with_port,
upload_dir=os.path.abspath("uploads"), upload_dir=os.path.abspath("uploads"),
db_name=config.database_path, db_name=config.database_path,
db_config=db_config, db_config=config.database_config,
tls_context_factory=tls_context_factory, tls_context_factory=tls_context_factory,
config=config, config=config,
content_addr=config.content_addr, content_addr=config.content_addr,
...@@ -404,7 +377,7 @@ def setup(config_options): ...@@ -404,7 +377,7 @@ def setup(config_options):
try: try:
db_conn = database_engine.module.connect( db_conn = database_engine.module.connect(
**{ **{
k: v for k, v in db_config.get("args", {}).items() k: v for k, v in config.database_config.get("args", {}).items()
if not k.startswith("cp_") if not k.startswith("cp_")
} }
) )
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
from ._base import Config from ._base import Config
import os import os
import yaml
class DatabaseConfig(Config): class DatabaseConfig(Config):
...@@ -27,9 +28,27 @@ class DatabaseConfig(Config): ...@@ -27,9 +28,27 @@ class DatabaseConfig(Config):
self.event_cache_size = self.parse_size(args.event_cache_size) self.event_cache_size = self.parse_size(args.event_cache_size)
if args.database_config: if args.database_config:
self.database_config = self.abspath(args.database_config) with open(args.database_config) as f:
self.database_config = yaml.safe_load(f)
else: else:
self.database_config = None self.database_config = {
"name": "sqlite3",
"args": {
"database": self.database_path,
},
}
name = self.database_config.get("name", None)
if name == "psycopg2":
pass
elif name == "sqlite3":
self.database_config.setdefault("args", {}).update({
"cp_min": 1,
"cp_max": 1,
"check_same_thread": False,
})
else:
raise RuntimeError("Unsupported database type '%s'" % (name,))
@classmethod @classmethod
def add_arguments(cls, parser): def add_arguments(cls, parser):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment