mysql - 为什么在使用spring boot进行测试时,特定注释会导致init.sql文件在mysql测试容器中失败?
问题描述
包含 # 的注释在 mysql 5.7 中完全有效,根据:https ://dev.mysql.com/doc/refman/5.7/en/comments.html似乎破坏了 mysql docker 测试容器的初始化文件。当我将 application-test.properties 文件中的数据源初始化为:
spring.datasource.jdbcUrl=jdbc:tc:mysql:5.7:///test?TC_INITSCRIPT=file:src/test/resources/test-init.sql
test-init.sql 文件中的任何这样的注释都会导致 mysql 在注释结构如下时忽略文件的其余部分:
# Dump of table USERS
# ------------------------------------------------------------
但是,当评论是这样的:
/*
# Dump of table USERS
# ------------------------------------------------------------
*/
文件的其余部分成功执行。
此外,测试容器不会引发 mysql 错误。相反,当我尝试在我的应用程序代码中引用它们时,它会告诉我我的表不存在。
我也使用测试容器而不是 H2,因为我希望它支持确切的 mysql 语法。有没有人暗示我如何纠正这个问题?我通常使用 sequel pro 的导出功能从现有数据库中导出模式。
解决方案
推荐阅读
- python - 使用 pandas DataFrame 初始化一个类并填充它
- javascript - 使用isSame函数从momnet js中的另一个数组元素中删除一个数组元素
- python - python中的环境变量
- java - 如何将有效负载发送到硒中的文本区域
- jquery - yajra 数据表 - laravel 5.7 我的数据表不工作
- python - 如何将列表中的值与特定整数值进行比较?
- php - 提交后没有任何反应
- android - 如何用 Flutter 应用替换现有的原生 Android/iOS 应用?
- webgl - WEBGL:INVALID_VALUE:vertexAttribPointer:索引超出范围,INVALID_VALUE:enableVertexAttribArray:索引超出范围
- performance - 在 react-native 应用程序中测量客户端页面呈现时间的工具