问题描述
我正在使用进化脚本,通过Slick,使用Play Framework来更新Microsoft sql Server 的架构数据库。
这在很大程度上效果很好,除了当出现问题时,我只会收到一条简短的错误消息,没有指明是脚本的哪一行导致了错误,而且——对于大型脚本——这使得识别错误既费时又费力具有挑战性。
例如,考虑这个错误:
An evolution has not been applied properly. Please check the problem and resolve it manually before marking it as resolved. -
We got the following error:,while trying to run this sql script:
就是这样。
有没有办法获得完整的错误消息(通过日志文件、配置设置等),其中包括进化失败的行号和上下文等?
解决方法
我花了一段时间,但我终于明白了这一点。
我编辑了 conf/logback.xml
文件以包含以下内容:
<logger name="play.api.db.evolutions" level="DEBUG" />
Ups 脚本中的每条语句都会在执行时写入 logs/application.log
,连同其结果,包括详细的错误消息。