【发布时间】:2017-10-16 11:47:18
【问题描述】:
我们在 JUnit 测试中使用 Spring boot 的数据库初始化功能,就像文档中的 here 一样。
我们的类路径中有schema.sql 文件,它在应用程序启动时按预期执行。但是该脚本失败了,因为它包含一些以下形式的 Conditional cmets,这些条件是使其在 MySQL 或 MariaDB 上运行所必需的。
cmets 如下所示:
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
在执行的堆栈跟踪中,我们发现 org.springframework.jdbc.datasource.init.ScriptUtils 类正在用于将 sql 文件拆分为单独的语句。在这个过程中,所有的块 cmets 都被删除并且不发送到数据库。
有没有办法配置此行为,以便将整个文件发送到数据库并立即执行?
【问题讨论】:
标签: mysql spring spring-boot mariadb