Spring Boot应用程序中schema.sql中的条件/可执行注释

时间:2017-05-17 06:55:39

标签: mysql spring spring-boot mariadb

我们在JUnit测试中使用Spring启动的数据库初始化功能,就像记录here一样。

我们的类路径上有schema.sql文件,它正在应用程序启动时按预期执行。但是脚本失败是因为它包含以下表单的一些条件注释,这些注释是在MySQL或MariaDB上运行所必需的。

评论如下:

/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;

在执行的堆栈跟踪中,我们发现类org.springframework.jdbc.datasource.init.ScriptUtils用于将sql文件拆分为单独的语句。在此过程中,所有块注释都将被删除,而不会发送到数据库。

有没有办法配置这种行为,以便整个文件只是发送到数据库并立即执行?

1 个答案:

答案 0 :(得分:0)

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

而是执行LOAD DATA INFILE ...以一步完成任务。