aboutsummaryrefslogtreecommitdiffstats
path: root/mediagoblin/db/sql/open.py
blob: 57feaf50a154e3fb11b4ce3359075a301f8963c4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
from sqlalchemy import create_engine

from mediagoblin.db.sql.base import Session
from mediagoblin.db.sql.models import Base


class DatabaseMaster(object):
    def __init__(self, engine):
        self.engine = engine

        for k,v in Base._decl_class_registry.iteritems():
            setattr(self, k, v)

    def commit(self):
        Session.commit()

    def save(self, obj):
        Session.add(obj)
        Session.flush()

    def reset_after_request(self):
        Session.remove()


def setup_connection_and_db_from_config(app_config):
    engine = create_engine(app_config['sql_engine'], echo=True)
    Session.configure(bind=engine)

    return "dummy conn", DatabaseMaster(engine)