diff options
Diffstat (limited to 'mediagoblin/db')
-rw-r--r-- | mediagoblin/db/base.py | 4 | ||||
-rw-r--r-- | mediagoblin/db/open.py | 7 |
2 files changed, 10 insertions, 1 deletions
diff --git a/mediagoblin/db/base.py b/mediagoblin/db/base.py index c3c34763..6acb0b79 100644 --- a/mediagoblin/db/base.py +++ b/mediagoblin/db/base.py @@ -30,6 +30,10 @@ class GMGTableBase(object): def _session(self): return inspect(self).session + @property + def _app(self): + return self._session.bind.app + if not DISABLE_GLOBALS: query = Session.query_property() diff --git a/mediagoblin/db/open.py b/mediagoblin/db/open.py index e85536de..bd629909 100644 --- a/mediagoblin/db/open.py +++ b/mediagoblin/db/open.py @@ -158,9 +158,14 @@ def _sqlite_disable_fk_pragma_on_connect(dbapi_con, con_record): dbapi_con.execute('pragma foreign_keys=off') -def setup_connection_and_db_from_config(app_config, migrations=False): +def setup_connection_and_db_from_config(app_config, migrations=False, app=None): engine = create_engine(app_config['sql_engine']) + # @@: Maybe make a weak-ref so an engine can get garbage + # collected? Not that we expect to make a lot of MediaGoblinApp + # instances in a single process... + engine.app = app + # Enable foreign key checking for sqlite if app_config['sql_engine'].startswith('sqlite://'): if migrations: |