调了我一晚上啊……………………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