def define_tables(self, metadata): global User, Address Base = decl.declarative_base(metadata=metadata) class User(Base, ComparableEntity): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) class Address(Base, ComparableEntity): __tablename__ = 'addresses' id = Column(Integer, primary_key=True) email = Column(String(50)) user_id = Column(Integer, ForeignKey('users.id')) if inline: if stringbased: user = relation("User", primaryjoin="User.id==Address.user_id", backref="addresses") else: user = relation(User, primaryjoin=User.id==user_id, backref="addresses") if not inline: compile_mappers() if stringbased: Address.user = relation("User", primaryjoin="User.id==Address.user_id", backref="addresses") else: Address.user = relation(User, primaryjoin=User.id==Address.user_id, backref="addresses")
def setup_mappers(self): global Session Session = scoped_session(sessionmaker()) mapper(User, users, properties={ 'addresses':relation(Address, backref='user', order_by=addresses.c.id) }) mapper(Address, addresses) compile_mappers()
def test_custom_inh(self): class Foo(Base): __tablename__ = 'foo' id = Column('id', Integer, primary_key=True) class Bar(Foo): __tablename__ = 'bar' id = Column('id', Integer, primary_key=True) foo_id = Column('foo_id', Integer) __mapper_args__ = {'inherit_condition':foo_id==Foo.id} # compile succeeds because inherit_condition is honored compile_mappers()
def setup_mappers(self): global Session Session = scoped_session(sessionmaker()) mapper(User, users, properties={ 'addresses': relation(Address, backref='user', order_by=addresses.c.id) }) mapper(Address, addresses) compile_mappers()
def test_string_dependency_resolution_in_backref(self): class User(Base, ComparableEntity): __tablename__ = 'users' id = Column(Integer, primary_key=True) name = Column(String(50)) addresses = relation("Address", primaryjoin="User.id==Address.user_id", backref="user" ) class Address(Base, ComparableEntity): __tablename__ = 'addresses' id = Column(Integer, primary_key=True) email = Column(String(50)) user_id = Column(Integer, ForeignKey('users.id')) compile_mappers() eq_(str(User.addresses.property.primaryjoin), str(Address.user.property.primaryjoin))