Thanks, I tried it...but could not get the desired result ( enforced FKs using SQLite ). Here is my test code:
#!/usr/bin/env python import sqlalchemy from sqlalchemy.interfaces import PoolListener class MyListener(PoolListener): def connect(self, dbapi_con, con_record): dbapi_con.execute('PRAGMA foreign_keys = ON;') engine = sqlalchemy.create_engine('sqlite:///:memory:', echo=True, listeners=[MyListener()]) metadata = sqlalchemy.MetaData(bind=engine) from sqlalchemy import Table, Column, ForeignKey, Integer parent_table = Table('parent',metadata, Column('id',Integer,primary_key=True) ) child_table = Table('child',metadata, Column('id',Integer,primary_key=True), Column('parent_id',Integer,ForeignKey('parent.id')) ) metadata.create_all(bind=engine) engine.connect() engine.execute(parent_table.insert().values(id=44)) try: engine.execute(child_table.insert().values(id=55,parent_id=33)) print 'Foreign Keys were NOT enforced!' except: print 'Foreign Keys were enforced.' ------------------------------------ The result I get is :"not enforced". using SQLite 3.6.23 on Windows Am I doing it right? On Apr 12, 8:26 pm, Michael Bayer <mike...@zzzcomputing.com> wrote: > On Apr 12, 2010, at 7:22 PM, NickPerkins wrote: > > > Apparently, new versions of SQLite will enforce Foreign Keys ( unlike > > previous versions ), but, for the sake of backwards-compatibility, you > > have to explicitly turn on foreign key enforcement by issuing: "pragma > > foreign_keys=on;". > > >http://www.sqlite.org/foreignkeys.html > > > I am new to SQLAlchemy -- how can I implement this in my program? > > The docs say that it must be turned on for each database connection > > separately. > > Apply a PoolListener to your engine which implements this call for each new > connection: > > http://www.sqlalchemy.org/docs/reference/sqlalchemy/interfaces.html?h... > > > > > > > -- > > You received this message because you are subscribed to the Google Groups > > "sqlalchemy" group. > > To post to this group, send email to sqlalch...@googlegroups.com. > > To unsubscribe from this group, send email to > > sqlalchemy+unsubscr...@googlegroups.com. > > For more options, visit this group > > athttp://groups.google.com/group/sqlalchemy?hl=en. -- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to sqlalch...@googlegroups.com. To unsubscribe from this group, send email to sqlalchemy+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en.