Ejemplo n.º 1
0
def configure_from_nested_dict(config):
    try:
        from formencode import schema, validators
    except ImportError:
        raise MingConfigError(
            "Need to install FormEncode to use ``ming.configure``")

    class DatastoreSchema(schema.Schema):
        allow_extra_fields = True

        uri = validators.UnicodeString(if_missing=None, if_empty=None)
        database = validators.UnicodeString(if_missing=None, if_empty=None)
        connect_retry = validators.Number(if_missing=3, if_empty=0)
        auto_ensure_indexes = validators.StringBool(if_missing=True)
        # pymongo
        tz_aware = validators.Bool(if_missing=False)

    datastores = {}
    for name, datastore in six.iteritems(config):
        args = DatastoreSchema.to_python(datastore, None)
        database = args.pop("database", None)
        if database is None:
            datastores[name] = create_datastore(**args)
        else:
            datastores[name] = create_datastore(database=database, **args)
    Session._datastores = datastores
    # bind any existing sessions
    for name, session in six.iteritems(Session._registry):
        session.bind = datastores.get(name, None)
        session._name = name
Ejemplo n.º 2
0
def configure_from_nested_dict(config):
    datastores = {}
    for name, datastore in six.iteritems(config):
        args = DatastoreSchema.to_python(datastore, None)
        database = args.pop('database', None)
        if database is None:
            datastores[name] = create_datastore(**args)
        else:
            datastores[name] = create_datastore(database, **args)
    Session._datastores = datastores
    # bind any existing sessions
    for name, session in six.iteritems(Session._registry):
        session.bind = datastores.get(name, None)
        session._name = name
Ejemplo n.º 3
0
def configure_from_nested_dict(config):
    datastores = {}
    for name, datastore in six.iteritems(config):
        args = DatastoreSchema.to_python(datastore, None)
        database = args.pop('database', None)
        if database is None:
            datastores[name] = create_datastore(**args)
        else:
            datastores[name] = create_datastore(database, **args)
    Session._datastores = datastores
    # bind any existing sessions
    for name, session in six.iteritems(Session._registry):
        session.bind = datastores.get(name, None)
        session._name = name
Ejemplo n.º 4
0
def setup_database():
    global bind, database_setup
    if not database_setup:
        bind = create_datastore('mim:///test')
        mainsession.bind = bind
        ming.odm.Mapper.compile_all()
        database_setup = True
Ejemplo n.º 5
0
from ming.datastore import create_datastore
from ming.datastore import DataStore
from ming.odm import ThreadLocalODMSession
from ming.odm import Mapper

#session = Session()
#DBSession = ThreadLocalODMSession(session)

DBSession = ThreadLocalODMSession(
    bind=create_datastore(
        'mongodb://localhost:27017/wi-amazon'))
Mapper.compile_all()

def init_mongo(engine):
    server, database = engine
    datastore = DataStore(server, database)
    session.bind = datastore
    Mapper.compile_all()