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
-~----------~----~----~----~------~----~------~--~---

Reply via email to