2016-07-25 30 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 
相關問題