[mark]sqlalchemy + sqlite + foreignkey

4 views
Skip to first unread message

jiakai

unread,
Feb 10, 2012, 11:42:54 AM2/10/12
to pynojo-...@googlegroups.com
调了我一晚上啊……………………T_T
根据 http://www.sqlite.org/pragma.html#pragma_foreign_keys,需要设定 PRAGMA foreign_keys=ON才能在sqlite中启用foreign key。。然后我想当然地直接在一开始就执行engine.execute('PRAGMA foreign_keys=ON'),但结果只有在内存数据库中才正常工作,换到文件就不行了。。。完全不明原理。。

经过坑爹的各种google、调试,实际上该做的是添加一个listener:

event.listen(engine, 'connect', lambda con, record:
         con.execute('PRAGMA foreign_keys=ON'))

mark一下。。。看来对sqlalchemy的理解一直都很浅薄…………

详情见下一次push中的utils/test-model.user.py

-- 
贾开
清华大学计算机系 计14班
Kai Jia
Department of Computer Science & Technology
Tsinghua University
signature.asc
Reply all
Reply to author
Forward
0 new messages