我已经将flyway添加到了spring boot java应用程序中。使用maven成功构建项目的唯一方法是注释掉测试类。否则,当flyway遇到试图在create Table脚本中创建索引的SQL脚本时,我会收到一个flyway错误。错误如下:由: org.flywaydb.core.internal.dbsupport.FlywaySqlScriptException:消息:未知数据类型:“IDK_COMPANIES_CITY”引起;SQL语句:如何在不注释测试的情况下构建我的项目?测试类如下:注意:我可以注释掉test类,成功构建和部署项目。所有SQL脚本都成功迁移。应用程序正在使用云中的MariaDB。谢谢。
package com.spring.sample;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.boot.test.SpringApplicationConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.test.context.web.WebAppConfiguration;
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = DatabaseTestApplication.class)
@WebAppConfiguration
public class DatabaseTestApplicationTests {
@Test
public void contextLoads() {
}
}发布于 2016-08-21 15:29:52
我假设您在测试中使用内存中的数据库,而不是连接到活动数据库。这可能意味着运行测试时创建的内存数据库不支持Flyway脚本中的语法。
尝试在您的测试应用程序属性中设置此属性:
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect我建议使用MySQLDialect的原因是MariaDB没有,而且在MariaDB's Knowledge Base中也有说明。
如果上述方法不起作用,请尝试此属性:
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialecthttps://stackoverflow.com/questions/38577887
复制相似问题