On Jun 24, 2011, at 12:03 PM, 371c wrote:
> Hi all,
>
> I have a problem when using the versioned recipe together with
> Association proxy. Some code may make this clear:
>
> import...
>
> class ItemKeywordAsso(Base):
>
> __tablename__ = "item_keywords"
>
> id = Column(Integer, primary_key=True)
> item_id = Column(Integer, ForeignKey('items.id'), index=True)
> keyword_id = Column(Integer, ForeignKey('keywords.id'), index=True)
>
> item = relationship("Item", backref="item_keywords")
> keyword = relationship("Keyword", lazy="joined")
>
> def __init__(self, item=None, keyword=None):
> self.item = item
> self.keyword = keyword
>
> class Item(Base, InnodbTableMixin):
>
> __metaclass__ = VersionedMeta
> __tablename__ = 'items'
>
> id = Column(Integer, primary_key=True)
> name = Column(Unicode(255))
> description = Column(UnicodeText)
>
> keywords = association_proxy("item_keywords", "keyword",
> creator=lambda k: \
> ItemKeywordAsso(keyword=k))
>
>
> The Error produced:
>
> ERROR: Failure: InvalidRequestError (Table 'item_keywords' is already
> defined for this MetaData instance. Specify 'extend_existing=True' to
> redefine options and columns on an existing Table object.)
>
> However: If i remove the "__metaclass__= VersionedMeta" in the Item
> class, everything works normally.
>
> Has anyone come across this? Any suggestions?
i doubt that has anything to do with the association proxy, and it appears like
the example is inadvertently creating an "item_keywords" table a second time.
can you provide a full example case ?
--
You received this message because you are subscribed to the Google Groups
"sqlalchemy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/sqlalchemy?hl=en.