I am trying to play with the sql alchemy ORM based db definition with an inmemory sqlite db. I have defined my tables as follows
class Customer(Base): __tablename__ = 'customer' id = Column(Integer, primary_key=True) name = Column(String(80)) auth = relationship("CustomerAuth", backref='customer') class CustomerAuth(Base): __tablename__ = 'authentication' id = Column(Integer, ForeignKey('customer.id')) username = Column(String(80), primary_key=True) passwd = Column(String(80)) Now I am creating the session Session = sessionmaker(bind=sqla.engine) session = Session() And then I try to create two row objects for Customer with id 1 and 2 cst1 = sqla.Customer(id=1,name='shyam') cst2 = sqla.Customer(id=2,name='ram') And I create three row objects for CustomerAuth which reference to id 1, 2 and 3 of Customer auth1 = sqla.CustomerAuth(id=1,username='shyamu',passwd='wam') auth2 = sqla.CustomerAuth(id=2,username='ramu',passwd='dam') auth3 = sqla.CustomerAuth(id=3,username='lamu',passwd='sam') As you can see I have created a CustomerAuth row with id = 3 , which is a foreign key referring the Customer.id. But since Customer table has no entry with id=3 , this should fail session.add(cst1) session.add(cst2) session.add(auth1) session.add(auth2) session.flush() This operation should fail but it goes through successfully. session.add(auth3) session.flush() I want to know what am I not doing which bypasses the foreign key enforcement Thanks in advance -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To post to this group, send email to sqlalchemy@googlegroups.com. Visit this group at http://groups.google.com/group/sqlalchemy?hl=en. For more options, visit https://groups.google.com/groups/opt_out.