made reflect metadata a flag (fixes #9)
This commit is contained in:
parent
1a25fbcd77
commit
4f3f574d58
@ -7,16 +7,19 @@ from dataset.persistence.database import Database
|
|||||||
from dataset.persistence.table import Table
|
from dataset.persistence.table import Table
|
||||||
from dataset.freeze.app import freeze
|
from dataset.freeze.app import freeze
|
||||||
|
|
||||||
def connect(url):
|
__all__ = ['Database', 'Table', 'freeze', 'connect']
|
||||||
|
|
||||||
|
|
||||||
|
def connect(url, reflectMetadata=True):
|
||||||
"""
|
"""
|
||||||
Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. Returns
|
Opens a new connection to a database. *url* can be any valid `SQLAlchemy engine URL`_. Returns
|
||||||
an instance of :py:class:`Database <dataset.Database>`.
|
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')
|
db = dataset.connect('sqlite:///factbook.db')
|
||||||
|
|
||||||
.. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine
|
.. _SQLAlchemy Engine URL: http://docs.sqlalchemy.org/en/latest/core/engines.html#sqlalchemy.create_engine
|
||||||
"""
|
"""
|
||||||
return Database(url)
|
return Database(url, reflectMetadata)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@ -17,7 +17,7 @@ log = logging.getLogger(__name__)
|
|||||||
|
|
||||||
class Database(object):
|
class Database(object):
|
||||||
|
|
||||||
def __init__(self, url):
|
def __init__(self, url, reflectMetadata=True):
|
||||||
kw = {}
|
kw = {}
|
||||||
if url.startswith('postgres'):
|
if url.startswith('postgres'):
|
||||||
kw['poolclass'] = NullPool
|
kw['poolclass'] = NullPool
|
||||||
@ -27,7 +27,8 @@ class Database(object):
|
|||||||
self.engine = construct_engine(engine)
|
self.engine = construct_engine(engine)
|
||||||
self.metadata = MetaData()
|
self.metadata = MetaData()
|
||||||
self.metadata.bind = self.engine
|
self.metadata.bind = self.engine
|
||||||
self.metadata.reflect(self.engine)
|
if reflectMetadata:
|
||||||
|
self.metadata.reflect(self.engine)
|
||||||
self._tables = {}
|
self._tables = {}
|
||||||
|
|
||||||
@property
|
@property
|
||||||
|
|||||||
2
setup.py
2
setup.py
@ -2,7 +2,7 @@ from setuptools import setup, find_packages
|
|||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='dataset',
|
name='dataset',
|
||||||
version='0.3.3',
|
version='0.3.4',
|
||||||
description="Toolkit for Python-based data processing.",
|
description="Toolkit for Python-based data processing.",
|
||||||
long_description="",
|
long_description="",
|
||||||
classifiers=[
|
classifiers=[
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user