Play 框架进化脚本错误行号

问题描述

我正在使用进化脚本,通过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,连同其结果,包括详细的错误消息。