diff options
author | Erik Johnston <erik@matrix.org> | 2019-06-06 18:35:38 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-06 18:35:38 +0100 |
commit | 1b8cb6439398994a12eb3e8b10201cafbeccc330 (patch) | |
tree | 59644beb05961c065be517c5a2b0374ff8b35edf /synapse/storage/prepare_database.py | |
parent | remove bloat (diff) | |
parent | fix maybe (diff) | |
download | synapse-1b8cb6439398994a12eb3e8b10201cafbeccc330.tar.xz |
Merge pull request #5320 from matrix-org/hawkowl/full-schema-v1
Make a full SQL schema
Diffstat (limited to 'synapse/storage/prepare_database.py')
-rw-r--r-- | synapse/storage/prepare_database.py | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/synapse/storage/prepare_database.py b/synapse/storage/prepare_database.py index 23a4baa484..f2c1bed487 100644 --- a/synapse/storage/prepare_database.py +++ b/synapse/storage/prepare_database.py @@ -20,6 +20,8 @@ import logging import os import re +from synapse.storage.engines.postgres import PostgresEngine + logger = logging.getLogger(__name__) @@ -115,8 +117,16 @@ def _setup_new_database(cur, database_engine): valid_dirs = [] pattern = re.compile(r"^\d+(\.sql)?$") + + if isinstance(database_engine, PostgresEngine): + specific = "postgres" + else: + specific = "sqlite" + + specific_pattern = re.compile(r"^\d+(\.sql." + specific + r")?$") + for filename in directory_entries: - match = pattern.match(filename) + match = pattern.match(filename) or specific_pattern.match(filename) abs_path = os.path.join(current_dir, filename) if match and os.path.isdir(abs_path): ver = int(match.group(0)) @@ -136,7 +146,9 @@ def _setup_new_database(cur, database_engine): directory_entries = os.listdir(sql_dir) - for filename in fnmatch.filter(directory_entries, "*.sql"): + for filename in sorted(fnmatch.filter(directory_entries, "*.sql") + fnmatch.filter( + directory_entries, "*.sql." + specific + )): sql_loc = os.path.join(sql_dir, filename) logger.debug("Applying schema %s", sql_loc) executescript(cur, sql_loc) |