首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法使用Flyway和测试类构建Spring Boot项目

问无法使用Flyway和测试类构建Spring Boot项目
EN

Stack Overflow用户
提问于 2016-07-26 05:42:41
回答 1查看 872关注 0票数 1

我已经将flyway添加到了spring boot java应用程序中。使用maven成功构建项目的唯一方法是注释掉测试类。否则,当flyway遇到试图在create Table脚本中创建索引的SQL脚本时,我会收到一个flyway错误。错误如下:由: org.flywaydb.core.internal.dbsupport.FlywaySqlScriptException:消息:未知数据类型:“IDK_COMPANIES_CITY”引起;SQL语句:如何在不注释测试的情况下构建我的项目?测试类如下:注意:我可以注释掉test类,成功构建和部署项目。所有SQL脚本都成功迁移。应用程序正在使用云中的MariaDB。谢谢。

代码语言:javascript
复制
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() {
    }

}
EN

回答 1

Stack Overflow用户

发布于 2016-08-21 15:29:52

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

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

代码语言:javascript
复制
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQLDialect

我建议使用MySQLDialect的原因是MariaDB没有,而且在MariaDB's Knowledge Base中也有说明。

如果上述方法不起作用,请尝试此属性:

代码语言:javascript
复制
spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38577887

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档