我们在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文件拆分为单独的语句。在此过程中,所有块注释都将被删除,而不会发送到数据库。
有没有办法配置这种行为,以便整个文件只是发送到数据库并立即执行?
答案 0 :(得分:0)
不要使用该脚本;这显然是不合适的。
而是执行LOAD DATA INFILE ...
以一步完成任务。