2017-08-01 6 views
1

DBスキーマをセットアップするために私のプロジェクトでflywayを使用しています。私はいくつかのJPA層をテストするために@DataJpaTestアノテーションを使用しようとすると、私は、起動時にこのエラーが出る:代わりに、通常のSQLFlyBootのDataJpaTest with flyway

のHSQLを使用しようとしているように見えます

> Caused by: 
> org.flywaydb.core.internal.command.DbMigrate$FlywayMigrateSqlException: 
> Migration V1__init.sql failed 
> ----------------------------- SQL State : 42581 Error Code : -5581 Message : unexpected token: AUTO_INCREMENT : line: 2 Location : 
> db/migration/V1__init.sql 
> ..../target/classes/db/migration/V1__init.sql) Line  : 1 
> Statement : CREATE TABLE mytable ( id INT NOT NULL AUTO_INCREMENT 
> PRIMARY KEY, 

は、方法はありますI flywayで@DataJpaTestを使用できますか?

答えて

1

HSQLDBを使用してスクリプトを実行しようとしています。あなたができることは、テスト用のデータベーススキーマを作成し、それを別のプロファイルで使用することです。あなたが持つ注釈@ActiveProfilesと無効HSQLDBでこのプロファイルを有効にする必要があり、あなたのテストクラスでは、その後、

spring.datasource.url=jdbc:mysql://localhost/test_db 
spring.datasource.username=your_user 
spring.datasource.password=your_pass 
spring.jpa.hibernate.ddl-auto=create 

そして:あなたはMySQLを使っていると仮定すると、あなたは、リソースのソースこのようなフォルダ内application-test.propertiesを持つことができます@AutoConfigureTestDatabaseでの注釈の設定:

@DataJpaTest 
@ActiveProfiles("test") 
@AutoConfigureTestDatabase(replace = Replace.NONE) 
public class DBTest { ... } 
+0

私はまだ – Johny19

+0

はSRC /メイン/ resources' '内側にあなたの'アプリケーション-test.properties'です(フライウェイはまだHSQLDBと私の移行スクリプトを実行しようとしました)同じエラーが出ますか? –

+0

私の更新を確認してください –

関連する問題