diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-06-11 11:38:06 -0400 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2010-06-11 11:38:06 -0400 |
commit | 27781263d93e4e35c8c39ed163fa827506cfb193 (patch) | |
tree | 278daa25489ac452c8afa531935caf0a9ef3f22a /lib/sqlalchemy/engine/reflection.py | |
parent | 4881873c6b80f168f498e8316711254cfa222cc8 (diff) | |
download | sqlalchemy-27781263d93e4e35c8c39ed163fa827506cfb193.tar.gz |
- Inspector hits bind.connect() when invoked to ensure
initialize has been called. the internal name ".conn"
is changed to ".bind", since that's what it is.
Diffstat (limited to 'lib/sqlalchemy/engine/reflection.py')
-rw-r--r-- | lib/sqlalchemy/engine/reflection.py | 43 |
1 files changed, 24 insertions, 19 deletions
diff --git a/lib/sqlalchemy/engine/reflection.py b/lib/sqlalchemy/engine/reflection.py index c66c1645b..4a3643a41 100644 --- a/lib/sqlalchemy/engine/reflection.py +++ b/lib/sqlalchemy/engine/reflection.py @@ -49,18 +49,23 @@ class Inspector(object): provides higher level functions for accessing database schema information. """ - def __init__(self, conn): + def __init__(self, bind): """Initialize the instance. - :param conn: a :class:`~sqlalchemy.engine.base.Connectable` + :param bind: a :class:`~sqlalchemy.engine.base.Connectable` """ - self.conn = conn + # ensure initialized + bind.connect() + + # this might not be a connection, it could be an engine. + self.bind = bind + # set the engine - if hasattr(conn, 'engine'): - self.engine = conn.engine + if hasattr(bind, 'engine'): + self.engine = bind.engine else: - self.engine = conn + self.engine = bind self.dialect = self.engine.dialect self.info_cache = {} @@ -79,7 +84,7 @@ class Inspector(object): """ if hasattr(self.dialect, 'get_schema_names'): - return self.dialect.get_schema_names(self.conn, + return self.dialect.get_schema_names(self.bind, info_cache=self.info_cache) return [] @@ -95,7 +100,7 @@ class Inspector(object): """ if hasattr(self.dialect, 'get_table_names'): - tnames = self.dialect.get_table_names(self.conn, + tnames = self.dialect.get_table_names(self.bind, schema, info_cache=self.info_cache) else: @@ -121,7 +126,7 @@ class Inspector(object): def get_table_options(self, table_name, schema=None, **kw): if hasattr(self.dialect, 'get_table_options'): - return self.dialect.get_table_options(self.conn, table_name, schema, + return self.dialect.get_table_options(self.bind, table_name, schema, info_cache=self.info_cache, **kw) return {} @@ -132,7 +137,7 @@ class Inspector(object): :param schema: Optional, retrieve names from a non-default schema. """ - return self.dialect.get_view_names(self.conn, schema, + return self.dialect.get_view_names(self.bind, schema, info_cache=self.info_cache) def get_view_definition(self, view_name, schema=None): @@ -142,7 +147,7 @@ class Inspector(object): """ return self.dialect.get_view_definition( - self.conn, view_name, schema, info_cache=self.info_cache) + self.bind, view_name, schema, info_cache=self.info_cache) def get_columns(self, table_name, schema=None, **kw): """Return information about columns in `table_name`. @@ -166,7 +171,7 @@ class Inspector(object): dict containing optional column attributes """ - col_defs = self.dialect.get_columns(self.conn, table_name, schema, + col_defs = self.dialect.get_columns(self.bind, table_name, schema, info_cache=self.info_cache, **kw) for col_def in col_defs: @@ -183,7 +188,7 @@ class Inspector(object): primary key information as a list of column names. """ - pkeys = self.dialect.get_primary_keys(self.conn, table_name, schema, + pkeys = self.dialect.get_primary_keys(self.bind, table_name, schema, info_cache=self.info_cache, **kw) @@ -202,7 +207,7 @@ class Inspector(object): optional name of the primary key constraint. """ - pkeys = self.dialect.get_pk_constraint(self.conn, table_name, schema, + pkeys = self.dialect.get_pk_constraint(self.bind, table_name, schema, info_cache=self.info_cache, **kw) @@ -236,7 +241,7 @@ class Inspector(object): """ - fk_defs = self.dialect.get_foreign_keys(self.conn, table_name, schema, + fk_defs = self.dialect.get_foreign_keys(self.bind, table_name, schema, info_cache=self.info_cache, **kw) return fk_defs @@ -260,14 +265,14 @@ class Inspector(object): other options passed to the dialect's get_indexes() method. """ - indexes = self.dialect.get_indexes(self.conn, table_name, + indexes = self.dialect.get_indexes(self.bind, table_name, schema, info_cache=self.info_cache, **kw) return indexes def reflecttable(self, table, include_columns): - dialect = self.conn.dialect + dialect = self.bind.dialect # MySQL dialect does this. Applicable with other dialects? if hasattr(dialect, '_connection_charset') \ @@ -362,7 +367,7 @@ class Inspector(object): if referred_schema is not None: sa_schema.Table(referred_table, table.metadata, autoload=True, schema=referred_schema, - autoload_with=self.conn, + autoload_with=self.bind, **reflection_options ) for column in referred_columns: @@ -370,7 +375,7 @@ class Inspector(object): [referred_schema, referred_table, column])) else: sa_schema.Table(referred_table, table.metadata, autoload=True, - autoload_with=self.conn, + autoload_with=self.bind, **reflection_options ) for column in referred_columns: |