From 8c1f9ae7c4a195bee1189c5f5ad2b216c738e063 Mon Sep 17 00:00:00 2001 From: Vincent Fretin Date: Fri, 28 Aug 2009 14:27:56 +0000 Subject: [PATCH] Merged r103336 from branch 1.3 --- CHANGES.txt | 6 ++++++ src/z3c/sqlalchemy/mapper.py | 4 ++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGES.txt b/CHANGES.txt index ec5b1da..734f49e 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -7,6 +7,12 @@ 1.3.11 (unreleased) ------------------- +- Don't create a new MetaData in LazyMapperCollection, + but use the one created in the wrapper. + In some cases, you could have some tables in the metadata created in the wrapper, + and some tables in the metadata created in the LazyMapperCollection, + which gave an error when trying to create relations. + - When generating the mapper class, make sure table.name is a string. It can be unicode when use_unicode=1 with MySQL engine. diff --git a/src/z3c/sqlalchemy/mapper.py b/src/z3c/sqlalchemy/mapper.py index 9d020ab..c723087 100644 --- a/src/z3c/sqlalchemy/mapper.py +++ b/src/z3c/sqlalchemy/mapper.py @@ -14,7 +14,7 @@ import new import threading -from sqlalchemy import Table, MetaData +from sqlalchemy import Table from sqlalchemy.orm import mapper, relation, class_mapper from sqlalchemy.ext.declarative import DeclarativeMeta @@ -131,7 +131,7 @@ def __init__(self, wrapper): self._wrapper = wrapper self._engine = wrapper.engine self._model = wrapper.model or {} - self._metadata = MetaData(self._engine) + self._metadata = wrapper.metadata self._mapper_factory = MapperFactory(self._metadata) self._dependent_tables = None self._lock = threading.Lock()