2016-07-25 82 views
0

我已将flyway添加到我们的spring启动java应用程序。我可以用maven成功构建项目的唯一方法是将测试类 注释掉。否则,当flyway遇到尝试在 创建表脚本中创建索引的SQL脚本时,我会收到flyway错误。错误如下: 引起:org.flywaydb.core.internal.dbsupport.FlywaySqlScriptException: 消息:未知的数据类型:“IDK_COMPANIES_CITY”; SQL语句: 如何让我的项目在不注释测试的情况下构建?测试类如下:注意:我可以注释掉Test类,成功构建和部署项目。所有SQL脚本都成功迁移。该应用程序在云中使用MariaDB。谢谢。无法与Flyway和测试类建立Spring Boot项目

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

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

尝试在您的测试应用程序属性设置此:

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

我建议使用MySQLDialect的原因是,有没有为MariaDB的因为它是这么说的MariaDB's Knowledge Base

如果上述方法无效,试试这个属性,而不是:

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect 
相关问题