无法使用Flyway和Test Class

时间:2016-07-25 21:42:41

标签: flyway

我已将flyway添加到我们的spring boot java应用程序中。我可以用maven成功构建项目的唯一方法就是注释掉 考试班。否则,当flyway遇到试图在a中创建索引的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() {
    }

}

1 个答案:

答案 0 :(得分:1)

我假设您在测试中使用内存数据库,而不是连接到实时数据库。这可能意味着运行测试时创建的内存数据库不支持Flyway脚本中的语法。

尝试在测试应用程序属性中设置它:

spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect

我建议使用MySQLDialect的原因是MariaDB没有,因为它在MariaDB's Knowledge Base中也是如此。

如果上述方法无效,请尝试使用此属性:

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect