I require that kind of thing, so I've assembled a little testcode to demonstrate the problems.
Below is the vanilla many to many thing that doesn't error upon defintion (with one minor glitch at the mapper, see #comments) from sqlalchemy import * from sqlalchemy.ext.proxy import ProxyEngine engine = ProxyEngine() foo = Table('foo', engine, Column('id', Integer, primary_key=True)) bar = Table('bar', engine, Column('id', Integer, primary_key=True)) foo_bar = Table('foo_bar', engine, Column('foo_id', Integer, ForeignKey('foo.id')), Column('bar_id', Integer, ForeignKey('bar.id'))) class Foo(object): pass Foo.mapper = mapper(Foo, foo) class Bar(object): pass Bar.mapper = mapper(Bar, bar) # Bar.mapper.add_property('foos', relation(Foo, foo_bar)) # ==> sqlalchemy.exceptions.ArgumentError: relation(class, table, **kwargs) is # deprecated. Please use relation(class, **kwargs) or relation(mapper, **kwargs). Bar.mapper.add_property('foos', relation(Foo.mapper, foo_bar)) Now when I throw in inheritance as in bar = Table('bar', engine, Column('id', Integer, ForeignKey('foo.id'), primary_key=True)) Bar.mapper = mapper(Bar, bar, inherits=Foo.mapper) and then try to Bar.mapper.add_property('foos', relation(Foo.mapper, foo_bar)) I get: Traceback (most recent call last): File "testalchemy.py", line 23, in ? Bar.mapper.add_property('foos', relation(Foo.mapper, foo_bar)) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/mapper.py", line 195, in add_property prop.init(key, self) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/mapper.py", line 777, in init self.do_init(key, parent) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/properties.py", line 191, in do_init self._compile_synchronizers() File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/properties.py", line 583, in _compile_synchronizers self.primaryjoin.accept_visitor(processor) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/sql.py", line 749, in accept_visitor c.accept_visitor(visitor) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/sql.py", line 819, in accept_visitor visitor.visit_binary(self) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/properties.py", line 969, in visit_binary self.func(binary) File "/usr/local/lib/python2.4/site-packages/SQLAlchemy-0.1.2-py2.4.egg/sqlalchemy/mapping/properties.py", line 575, in compile raise AssertionError("assert failed") sqlalchemy.exceptions.AssertionError: assert failed (a sidenote, assert failed isn't a very clever assert line :D) ----- End forwarded message ----- ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ Sqlalchemy-users mailing list Sqlalchemy-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sqlalchemy-users