我有一个mysql 5.7.20表,它有一个json类型的列,我使用这个type进行映射,当我“./mvnw”时,一切正常。
但是当我“./mvnw package -Pprod dockerfile:build”时,有一个例外:
org.hibernate.tool.schema.spi.SchemaManagementException: Schema-validation: missing column [abilities] in table [ability]
根据GaëlMarziou的说法,“TESTS”阶段开始后发生异常,测试使用H2而不是mysql,而H2不支持json类型。
那么在这种情况下如何生成docker镜像呢?禁用表的方案验证?或禁用对实体能力的测试?如何?
请帮助,非常感谢。
答案 0 :(得分:1)
嗯,快速而肮脏的解决方案是使用-DskipTests
,或通过将spring.jpa.hibernate.ddl-auto
设置为none
来禁用架构验证,然后排除maven-surefire-plugin
配置中的违规测试。
话虽这么说,您肯定应该将集成测试配置为针对将用于生产的数据库运行,尤其是因为您的应用程序使用特定于供应商的数据库功能(如果不是用于开发,那么至少用于您的CI构建)。