From: Mike Bayer Date: Mon, 29 Jan 2007 23:41:11 +0000 (+0000) Subject: reset managed attributes on mapped classes when clear_mappers called X-Git-Tag: rel_0_3_5~77 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9cd9fc25d3f708b83041508960ced66d3f4a5e36;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git reset managed attributes on mapped classes when clear_mappers called --- diff --git a/lib/sqlalchemy/orm/__init__.py b/lib/sqlalchemy/orm/__init__.py index b7706e381f..96890272d4 100644 --- a/lib/sqlalchemy/orm/__init__.py +++ b/lib/sqlalchemy/orm/__init__.py @@ -15,7 +15,7 @@ from sqlalchemy.orm.query import Query from sqlalchemy.orm.util import polymorphic_union from sqlalchemy.orm import properties, strategies from sqlalchemy.orm.session import Session as create_session -from sqlalchemy.orm.session import object_session +from sqlalchemy.orm.session import object_session, attribute_manager __all__ = ['relation', 'backref', 'eagerload', 'lazyload', 'noload', 'deferred', 'defer', 'undefer', 'extension', 'mapper', 'clear_mappers', 'compile_mappers', 'clear_mapper', 'class_mapper', 'object_mapper', 'MapperExtension', 'Query', @@ -72,6 +72,8 @@ def clear_mappers(): """remove all mappers that have been created thus far. when new mappers are created, they will be assigned to their classes as their primary mapper.""" + for mapper in mapper_registry.values(): + attribute_manager.reset_class_managed(mapper.class_) mapper_registry.clear() mapperlib.ClassKey.instances.clear()