summaryrefslogtreecommitdiff
path: root/lib/sqlalchemy/ext/automap.py
diff options
context:
space:
mode:
authorMike Bayer <mike_mp@zzzcomputing.com>2014-02-08 21:24:13 -0500
committerMike Bayer <mike_mp@zzzcomputing.com>2014-02-08 21:24:13 -0500
commitee88e648f7a56ef76426957a5344639ab9954d9d (patch)
treee64a9406e93ab44b937c04568a752d9083a396d7 /lib/sqlalchemy/ext/automap.py
parent5c188f6c1ce85eaace27f052bfd1a14f74f6a659 (diff)
downloadsqlalchemy-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.py8
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