aboutsummaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorrr-2016-08-15 19:55:03 +0200
committerrr-2016-08-16 21:42:09 +0200
commit6c29377f6bf1e21f73ca727c4a5eb1154df5c4c6 (patch)
treee77cc7386f94753b91d2141848d1030d46f25b88 /server
parente688f39887cf860edfbf066e888a1352e74ccd46 (diff)
server/db: allow full DSN; use memdb in tests
The earlier commit is still relevant as it allows to integrate real database when needed.
Diffstat (limited to 'server')
-rw-r--r--server/szurubooru/db/session.py9
-rw-r--r--server/szurubooru/facade.py6
-rw-r--r--server/szurubooru/migrations/env.py10
-rw-r--r--server/szurubooru/tests/conftest.py11
4 files changed, 6 insertions, 30 deletions
diff --git a/server/szurubooru/db/session.py b/server/szurubooru/db/session.py
index b9dea7c..eb8f621 100644
--- a/server/szurubooru/db/session.py
+++ b/server/szurubooru/db/session.py
@@ -19,14 +19,7 @@ class QueryCounter(object):
def create_session():
- _engine = sqlalchemy.create_engine(
- '{schema}://{user}:{password}@{host}:{port}/{name}'.format(
- schema=config.config['database']['schema'],
- user=config.config['database']['user'],
- password=config.config['database']['pass'],
- host=config.config['database']['host'],
- port=config.config['database']['port'],
- name=config.config['database']['name']))
+ _engine = sqlalchemy.create_engine(config.config['database'])
sqlalchemy.event.listen(
_engine, 'after_execute', lambda *args: QueryCounter.bump())
_session_maker = sqlalchemy.orm.sessionmaker(bind=_engine)
diff --git a/server/szurubooru/facade.py b/server/szurubooru/facade.py
index 69bc6b9..60e58d5 100644
--- a/server/szurubooru/facade.py
+++ b/server/szurubooru/facade.py
@@ -68,10 +68,8 @@ def validate_config():
raise errors.ConfigError(
'data_dir must be an absolute path')
- for key in ['schema', 'host', 'port', 'user', 'pass', 'name']:
- if not config.config['database'][key]:
- raise errors.ConfigError(
- 'Database is not configured: %r is missing' % key)
+ if not config.config['database']:
+ raise errors.ConfigError('Database is not configured')
def create_app():
diff --git a/server/szurubooru/migrations/env.py b/server/szurubooru/migrations/env.py
index f116150..2f7c112 100644
--- a/server/szurubooru/migrations/env.py
+++ b/server/szurubooru/migrations/env.py
@@ -16,15 +16,7 @@ alembic_config = alembic.context.config
logging.config.fileConfig(alembic_config.config_file_name)
szuru_config = szurubooru.config.config
-alembic_config.set_main_option(
- 'sqlalchemy.url',
- '{schema}://{user}:{password}@{host}:{port}/{name}'.format(
- schema=szuru_config['database']['schema'],
- user=szuru_config['database']['user'],
- password=szuru_config['database']['pass'],
- host=szuru_config['database']['host'],
- port=szuru_config['database']['port'],
- name=szuru_config['database']['name']))
+alembic_config.set_main_option('sqlalchemy.url', szuru_config['database'])
target_metadata = szurubooru.db.Base.metadata
diff --git a/server/szurubooru/tests/conftest.py b/server/szurubooru/tests/conftest.py
index aca4682..3db1960 100644
--- a/server/szurubooru/tests/conftest.py
+++ b/server/szurubooru/tests/conftest.py
@@ -31,18 +31,11 @@ class QueryCounter(object):
return self._statements
-if not config.config['test_database']['host']:
+if not config.config['test_database']:
raise RuntimeError('Test database not configured.')
_query_counter = QueryCounter()
-_engine = sqlalchemy.create_engine(
- '{schema}://{user}:{password}@{host}:{port}/{name}'.format(
- schema=config.config['test_database']['schema'],
- user=config.config['test_database']['user'],
- password=config.config['test_database']['pass'],
- host=config.config['test_database']['host'],
- port=config.config['test_database']['port'],
- name=config.config['test_database']['name']))
+_engine = sqlalchemy.create_engine(config.config['test_database'])
db.Base.metadata.drop_all(bind=_engine)
db.Base.metadata.create_all(bind=_engine)
sqlalchemy.event.listen(

© 2015 - 2026 Jakob L. Kreuze