On Oct 24, 2007, at 4:16 PM, Barry Hart wrote:
> This subject came up on the TurboGears list and someone suggested I
> post here.
>
> I noticed a while back that in SqlAlchemy 0.3.x, if you have two
> mapped classes A and B, and you define the same relationship (with
> a backref) on both classes, you won't get an error message but the
> two relationships interfere with each other. For example, you might
> set the value of the relationship and it won't be saved to the
> database. Would it be possible to detect and flag this as an error
> at model compilation time?
>
hey Barry -
that would be a bug, and I cant reproduce it, at least the bug i
think youre describing, in neither 0.3 nor 0.4:
from sqlalchemy import *
from sqlalchemy.orm import *
engine = create_engine('sqlite://')
meta = MetaData(engine)
a = Table('a', meta, Column('id', Integer, primary_key=True))
b = Table('b', meta, Column('id', Integer, primary_key=True), Column
('a_id', Integer, ForeignKey('a.id')))
c = Table('c', meta, Column('id', Integer, primary_key=True), Column
('a_id', Integer, ForeignKey('a.id')))
class A(object):pass
class B(object):pass
class C(object):pass
mapper(A, a)
mapper(B, b, properties={
'a':relation(A, backref='thebackref')
})
mapper(C, c, properties={
'a':relation(A, backref='thebackref')
})
compile_mappers()
output:
<stack trace>
sqlalchemy.exceptions.ArgumentError: Backrefs do not match: backref
'thebackref' expects to connect to <class '__main__.C'>, but found a
backref already connected to <class '__main__.B'>
can you produce a test 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
-~----------~----~----~----~------~----~------~--~---