summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
authorMark Haines <mark.haines@matrix.org>2015-01-19 15:26:19 +0000
committerMark Haines <mark.haines@matrix.org>2015-01-19 15:26:19 +0000
commit3e85e52b3f0e9330f29ec3d0f572db7b122c88b0 (patch)
treec76b1a2c0ba99637188186f92972e7e4dbcd013d /synapse
parentFinish renaming "context" to "room_id" in federation codebase (diff)
downloadsynapse-3e85e52b3f0e9330f29ec3d0f572db7b122c88b0.tar.xz
Allow ':memory:' as the database path for sqlite3
Diffstat (limited to '')
-rwxr-xr-xsynapse/app/homeserver.py8
-rw-r--r--synapse/config/database.py5
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):