DDL() has some simple templating capabilities that can help out a bit here, but I'd suggest taking the ForeignKey code Mike provided as a start and putting together an after-create listener using Table.append_ddl_listener directly:
http://www.sqlalchemy.org/docs/05/sqlalchemy_schema.html#docstrings_sqlalchemy.schema_Table It would look something like: def fks_for_sqlite(event, table, bind): for c in table.c: for fk in c.foreign_keys: sql = your_code_to_make_trigger_for_fk(fk) bind.execute(sql) tbl.append_ddl_listener('after-create', fks_for_sqlite) Michael Bayer wrote: > you can build this functionality using the DDL() construct provided by > SQLAlchemy: > > http://www.sqlalchemy.org/docs/05/sqlalchemy_schema.html#docstrings_sqlalchemy.schema_DDL > > the ForeignKey objects on the table can be pulled out using: > > for c in table.c: > for fk in c.foreign_keys: > do_something_with_fk(fk) > > > > On Aug 22, 2008, at 11:19 AM, Randy Syring wrote: > >> I would like sqlalchemy to generate triggers on an SQLite database to >> enforce foreign key relationships. The method is documented here: >> >> http://www.sqlite.org/cvstrac/wiki?p=ForeignKeyTriggers >> >> and I have written a foreign key trigger generator here: >> >> http://rcs-comp.com/site/index.php/view/Utilities-SQLite_foreign_key_trigger_generator >> >> Although it does not recognize the kind of references sqlalchemy >> generates in the CREATE TABLE statements. >> >> Anyway, the point of this post is that I would like to know how I >> should go about extending sqlalchemy so that when I use ForeignKey >> constructs in the metadata, create statements on the tables would also >> create the triggers and drop statements on the tables would drop the >> said triggers to enforce the Foreign Key relationship. >> >> Thanks. >> > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sqlalchemy?hl=en -~----------~----~----~----~------~----~------~--~---
