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 [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sqlalchemy?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.