Skip to content

Cum să folosești Flyway API în Java

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să folosești Flyway API în Java. We cover key concepts, practical examples, and best practices.

Flyway API Java îți permite să controlezi migrările direct din cod, integrându-le în procesul de pornire al aplicației sau în operațiuni administrative.

Problema

În aplicațiile enterprise, vrei ca migrările să se execute automat la pornirea aplicației, nu manual din linia de comandă.

Dependență Maven

<dependency>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-core</artifactId>
    <version>10.0.0</version>
</dependency>

Configurare de bază (Java)

import org.flywaydb.core.Flyway;

public class MigrationRunner {
    public static void main(String[] args) {
        Flyway flyway = Flyway.configure()
            .dataSource("jdbc:postgresql://localhost:5432/baza_mea",
                        "user", "password")
            .locations("db/migration")
            .load();

        // Rulează migrările
        int count = flyway.migrate();
        System.out.println("Migrări aplicate: " + count);
    }
}

Configurare avansată

Flyway flyway = Flyway.configure()
    .dataSource(dataSource)
    .locations("classpath:db/migration")
    .schemas("app")
    .table("flyway_history")
    .baselineOnMigrate(true)
    .baselineVersion("1.0")
    .validateOnMigrate(true)
    .outOfOrder(false)
    .load();

FlywayMigrationResult result = flyway.migrate();
System.out.println("Versiune curentă: " + result.targetVersion);

Spring Boot

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;

@Configuration
public class FlywayConfig {
    @Bean
    public Flyway flyway(DataSource dataSource) {
        return Flyway.configure()
            .dataSource(dataSource)
            .locations("db/migration")
            .baselineOnMigrate(true)
            .load();
    }
}

Operațiuni API

Flyway flyway = Flyway.configure()
    .dataSource(url, user, password)
    .load();

// Info
MigrationInfoService info = flyway.info();
for (MigrationInfo mi : info.all()) {
    System.out.println(mi.getVersion() + " - " + mi.getState());
}

// Baseline
flyway.baseline();

// Clean (cu grijă!)
// flyway.clean();

// Repair
flyway.repair();

Erori frecvente

  1. DataSource incorect — URL-ul JDBC trebuie să fie valid.
  2. Driver lipsă — adaugă driverul JDBC în classpath.
  3. Versiune Flyway incompatibilă — asigură-te că versiunea API se potrivește cu cea a scripturilor.

FAQ

### Flyway API Spring Boot e același cu Flyway obișnuit?

Spring Boot integrează automat Flyway. Poți configura prin application.properties sau prin API direct.

Pot dezactiva Flyway în anumite medii?

Da, setează flyway.enabled=false în configurația Spring Boot sau nu apela flyway.migrate() în cod.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with Flyway for enhanced productivity and security.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro