diff options
-rw-r--r-- | CHANGES | 1 | ||||
-rw-r--r-- | lib/sqlalchemy/schema.py | 12 |
2 files changed, 9 insertions, 4 deletions
@@ -51,6 +51,7 @@ returns datetimes with tzinfo's if available, which can create confusion against datetimes that dont). - fix to using query.count() with distinct, **kwargs with SelectResults count() [ticket:287] +- deregister Table from MetaData when autoload fails; [ticket:289] 0.2.7 - quoting facilities set up so that database-specific quoting can be diff --git a/lib/sqlalchemy/schema.py b/lib/sqlalchemy/schema.py index bb9e534c7..f4e89ef24 100644 --- a/lib/sqlalchemy/schema.py +++ b/lib/sqlalchemy/schema.py @@ -91,10 +91,14 @@ class TableSingleton(type): # we do it after the table is in the singleton dictionary to support # circular foreign keys if autoload: - if autoload_with: - autoload_with.reflecttable(table) - else: - metadata.engine.reflecttable(table) + try: + if autoload_with: + autoload_with.reflecttable(table) + else: + metadata.engine.reflecttable(table) + except exceptions.NoSuchTableError: + table.deregister() + raise # initialize all the column, etc. objects. done after # reflection to allow user-overrides table._init_items(*args) |