diff options
author | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-02-08 21:24:13 -0500 |
---|---|---|
committer | Mike Bayer <mike_mp@zzzcomputing.com> | 2014-02-08 21:24:13 -0500 |
commit | ee88e648f7a56ef76426957a5344639ab9954d9d (patch) | |
tree | e64a9406e93ab44b937c04568a752d9083a396d7 /lib/sqlalchemy/ext/automap.py | |
parent | 5c188f6c1ce85eaace27f052bfd1a14f74f6a659 (diff) | |
download | sqlalchemy-ee88e648f7a56ef76426957a5344639ab9954d9d.tar.gz |
- Fixed bug where the :class:`.AutomapBase` class of the
new automap extension would fail if classes
were pre-arranged in single or potentially joined inheritance patterns.
The repaired joined inheritance issue could also potentially apply when
using :class:`.DeferredReflection` as well.
Diffstat (limited to 'lib/sqlalchemy/ext/automap.py')
-rw-r--r-- | lib/sqlalchemy/ext/automap.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/sqlalchemy/ext/automap.py b/lib/sqlalchemy/ext/automap.py index 7a1512f6a..b98ac1707 100644 --- a/lib/sqlalchemy/ext/automap.py +++ b/lib/sqlalchemy/ext/automap.py @@ -598,7 +598,8 @@ class AutomapBase(object): table_to_map_config = dict( (m.local_table, m) - for m in _DeferredMapperConfig.classes_for_base(cls) + for m in _DeferredMapperConfig. + classes_for_base(cls, sort=False) ) many_to_many = [] @@ -635,7 +636,8 @@ class AutomapBase(object): name_for_scalar_relationship, name_for_collection_relationship, generate_relationship) - for map_config in table_to_map_config.values(): + + for map_config in _DeferredMapperConfig.classes_for_base(cls): map_config.map() @@ -718,6 +720,8 @@ def _relationships_for_fks(automap_base, map_config, table_to_map_config, local_table = map_config.local_table local_cls = map_config.cls + if local_table is None: + return for constraint in local_table.constraints: if isinstance(constraint, ForeignKeyConstraint): fks = constraint.elements |