def freeze_export(export, result=None): try: if result is None: database = Database(export.get('database')) query = database.query(export.get('query')) else: query = result serializer_cls = get_serializer(export) serializer = serializer_cls(export, query) serializer.serialize() except (OperationalError, ProgrammingError) as e: raise FreezeException("Invalid query: %s" % e)
def freeze_export(export, result=None): try: if result is None: database = Database(export.get('database')) query = database.query(export.get('query')) else: query = result serializer_cls = get_serializer(export) serializer = serializer_cls(export, query) serializer.serialize() except ProgrammingError, pe: raise FreezeException("Invalid query: %s" % pe)
def connect(url=None, schema=None, reflect_metadata=True, engine_kwargs=None, reflect_views=True, row_type=row_type): """ Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. If *url* is not defined it will try to use *DATABASE_URL* from environment variable. Returns an instance of :py:class:`Database <dataset.Database>`. Set *reflect_metadata* to False if you don't want the entire database schema to be pre-loaded. This significantly speeds up connecting to large databases with lots of tables. *reflect_views* can be set to False if you don't want views to be loaded. Additionally, *engine_kwargs* will be directly passed to SQLAlchemy, e.g. set *engine_kwargs={'pool_recycle': 3600}* will avoid `DB connection timeout`_. Set *row_type* to an alternate dict-like class to change the type of container rows are stored in.:: db = dataset.connect('sqlite:///factbook.db') .. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine .. _DB connection timeout: http://docs.sqlalchemy.org/en/latest/core/pooling.html#setting-pool-recycle """ if url is None: url = os.environ.get('DATABASE_URL', 'sqlite://') return Database(url, schema=schema, reflect_metadata=reflect_metadata, engine_kwargs=engine_kwargs, reflect_views=reflect_views, row_type=row_type)
def connect(url, reflectMetadata=True): """ Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. Returns an instance of :py:class:`Database <dataset.Database>`. Set *reflectMetadata* to False if you don't want the entire database schema to be pre-loaded. This significantly speeds up connecting to large databases with lots of tables. :: db = dataset.connect('sqlite:///factbook.db') .. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine """ return Database(url, reflectMetadata)
def connect(url=None, schema=None, reflectMetadata=True): """ Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. If *url* is not defined it will try to use *DATABASE_URL* from environment variable. Returns an instance of :py:class:`Database <dataset.Database>`. Set *reflectMetadata* to False if you don't want the entire database schema to be pre-loaded. This significantly speeds up connecting to large databases with lots of tables. :: db = dataset.connect('sqlite:///factbook.db') .. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine """ if url is None: url = os.environ.get('DATABASE_URL', url) return Database(url, schema=schema, reflectMetadata=reflectMetadata)