diff options
| author | rr- | 2016-08-15 19:55:03 +0200 |
|---|---|---|
| committer | rr- | 2016-08-16 21:42:09 +0200 |
| commit | 6c29377f6bf1e21f73ca727c4a5eb1154df5c4c6 (patch) | |
| tree | e77cc7386f94753b91d2141848d1030d46f25b88 /server | |
| parent | e688f39887cf860edfbf066e888a1352e74ccd46 (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.py | 9 | ||||
| -rw-r--r-- | server/szurubooru/facade.py | 6 | ||||
| -rw-r--r-- | server/szurubooru/migrations/env.py | 10 | ||||
| -rw-r--r-- | server/szurubooru/tests/conftest.py | 11 |
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( |