【问题标题】:Conditional/Executable Comments in schema.sql in Spring Boot applicationSpring Boot 应用程序中 schema.sql 中的条件/可执行注释
【发布时间】: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


    【解决方案1】:

    不要使用那个脚本;这显然是不合适的。

    改为执行LOAD DATA INFILE ... 以一步完成任务。

    【讨论】:

      猜你喜欢
      • 2015-12-30
      • 2015-03-11
      • 2021-03-13
      • 2021-10-06
      • 2021-09-05
      • 2017-06-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多