2016-07-25 3 views
0

私はスプリングブートJavaアプリケーションにflywayを追加しました。私がmavenを使ってプロジェクトを正常に構築できる唯一の方法は、テストクラス をコメントアウトすることです。さもなければ、flywayが テーブル作成スクリプト内でインデックスを作成しようとしているSQLスクリプトに遭遇したときにフライウェイエラーを受け取ります。エラーは次のとおりです。 原因: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

私はあなたのテストでは、ライブに接続するのではなく、メモリ内のデータベースを使用していると仮定します。つまり、テストの実行時に作成されているインメモリデータベースが、Flywayスクリプト内の構文をサポートしていない可能性があります。

は、テストアプリケーションのプロパティでこれを設定してみてください:私はMySQLDialectを使用することをお勧めし

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

理由は、MariaDBのために、それはMariaDB's Knowledge Baseになると言うので、何も存在しないことです。

以上が動作しない場合は、代わりにこのプロパティを試してみてください。

spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect 
関連する問題