このSpringプロパティファイルをデータベース構成に使用したいと思います。
spring.jmx.enabled=false
spring.datasource.jndi-name=java:/global/production
spring.datasource.driver-class-name=org.mariadb.jdbc.Driver
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MariaDBDialect
spring.jpa.show-sql = true
spring.jpa.hibernate.ddl-auto = update
request.limit=300000
spring.flyway.baselineOnMigrate = true
spring.flyway.locations=classpath:/db/migration
コードは正常に機能しますが、残念ながら、すべてのテーブルが削除された後にデータベースが空になると、移行スクリプトが最初に実行されるため、SQLエラーが発生します。
最初にJPAを構成してテーブルを作成し、次にフライウェイを構成して移行スクリプトを実行するにはどうすればよいですか?
フライウェイの移行は、休止状態の実行の前に実行されます。起動順序を確認することでそれを行うことができます。このためには、次の構成クラスを追加する必要があります。
import org.flywaydb.core.Flyway;
import
org.springframework.boot.autoconfigure.flyway.FlywayMigrationInitializer;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.DependsOn;
@Configuration
public class MigrationConfiguration {
/**
* Override default flyway initializer to do nothing
*/
@Bean
FlywayMigrationInitializer flywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, (f) ->{} );
}
/**
* Create a second flyway initializer to run after jpa has created the schema
*/
@Bean
@DependsOn("entityManagerFactory")
FlywayMigrationInitializer delayedFlywayInitializer(Flyway flyway) {
return new FlywayMigrationInitializer(flyway, null);
}
}
この答えを見て、詳細がわかります。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加