1、遇到的问题
要在数据库中写一个简单的触发器,限制最高权限的用户删除自己,触发器只不过10几行代码。在shell中使用sql语句delete拥有管理员角色的用户会触发触发器阻止删除,但是在Flask-Admin中删除就会顺利删除,没有报任何异常。
2、自己的解决过程
再三验证触发器是否正确,重复在Flask-Admin后台删除用户,没有任何日志输出,没有调试信息,没有堆栈信息。
3、大佬的解决思路
首先验证触发器写的是否正确,验证通过,接着将ORM操作转成的sql语句输出到控制台,输出太多看不清怎么办?截取想要的输出日志赋值到文本编辑器,关键字拆分。
真相一目了然,所有的问题迎刃而解。
4、收获
调试信息很重要、调试信息很重要、调试信息很重要!
遇到难解决的Bug不能使蛮劲,要抓住问题的本质,从根源去找原因。
这次给我的最大的收获是遇到问题思考的方向很重要,手段同样重要,项目中的异常、提示一定要具体,项目中踩过的坑要记录,一方后来接手项目的人在浪费时间。