2 files changed, 11 insertions, 2 deletions
diff --git a/synapse/app/homeserver.py b/synapse/app/homeserver.py
index 43b5c26144..61ad53fbb2 100755
--- a/synapse/app/homeserver.py
+++ b/synapse/app/homeserver.py
@@ -247,7 +247,13 @@ def setup():
logger.info("Database prepared in %s.", db_name)
- hs.get_db_pool()
+ db_pool = hs.get_db_pool()
+
+ if db_name == ":memory:"
+ # Memory databases will need to be setup each time they are opened.
+ reactor.callWhenRunning(
+ hs.get_db_pool().runWithConnection, prepare_database
+ )
if config.manhole:
f = twisted.manhole.telnet.ShellFactory()
diff --git a/synapse/config/database.py b/synapse/config/database.py
index 0d33583a7d..daa161c952 100644
--- a/synapse/config/database.py
+++ b/synapse/config/database.py
@@ -20,7 +20,10 @@ import os
class DatabaseConfig(Config):
def __init__(self, args):
super(DatabaseConfig, self).__init__(args)
- self.database_path = self.abspath(args.database_path)
+ if args.database_path == ":memory:":
+ self.database_path = ":memory:"
+ else:
+ self.database_path = self.abspath(args.database_path)
@classmethod
def add_arguments(cls, parser):
|