Antes de continuar lendo, certifique-se de ter lido os fundamentos sobre scripts de migração no artigo Migrações de Banco de Dados para Iniciantes ou você tem alguns conhecimentos sobre este tópico.
Primeiro, precisamos adicionar as dependências.
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
<version>9.8.3</version>
</dependency>
<dependency>
<groupId>org.postgresql</groupId>
<artifactId>postgresql</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
spring:
datasource:
hikari:
jdbc-url: jdbc:postgresql://localhost:54322/wallet-transaction
pool-name: wallet-transaction-hikari-pool
driver-class-name: org.postgresql.Driver
username: wallet-transaction
password: wallet-transaction
# application.yml
@EnableJpaRepositories(basePackages = {"com.crypto.coinwallet.andrelucas.dataprovider"})
@Configuration
@EnableTransactionManagement
public class DataSourceConfiguration {
@Bean
@ConfigurationProperties(value = "spring.datasource.hikari")
DataSource dataSource(){
return DataSourceBuilder.create() // DataSourceBuilder<capture of ?>
.type(HikariDataSource.class) // DataSourceBuilder<HikariDataSource>
.build();
}
}
DataSourceConfiguration.java
Por padrão, os scripts de migração do flyway estão na pasta db/migrations

Mas, se você quiser alterar, você só precisa adicionar esta linha no arquivo application.yml
flyway:
locations: db/migration
Outra forma é configurar o flyway programaticamente
@Bean(name = "managerFlyway")
public Flyway flyway(@Qualifier("clientDataSource") final DataSource dataSource){
final var configuration = new ClassicConfiguration();
configuration.setDataSource(dataSource);
configuration.setLocations(new Location(descriptor: "classpath:flyway_client"));
final Flyway flyway = new Flyway(configuration);
flyway.migrate();
return flyway;
}
Neste caso, o bean flyway recebe o bean de configuração do data source, e outro caminho onde estão os scripts de migração.

