Skip to content

Cum să folosești Flyway cu Maven

DodaTech Updated 2025-01-15 1 min read

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

Vei învăța cum să configurezi plugin-ul Flyway Maven pentru a rula migrări de bază de date ca parte a ciclului de build Maven.

Problema

Menținerea manuală a schemei bazei de date între medii de dezvoltare, testare și producție cauzează inconsecvențe. Plugin-ul Flyway Maven automatizează sincronizarea, dar configurarea necesită atenție la detalii.

Modul Greșit

<!-- pom.xml — configurare incompletă -->
<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>10.0.0</version>
</plugin>
<!-- Lipsesc configurațiile JDBC și location -->
mvn flyway:migrate
# Eroare: Required property 'url' is not set

Modul Corect

<plugin>
    <groupId>org.flywaydb</groupId>
    <artifactId>flyway-maven-plugin</artifactId>
    <version>10.0.0</version>
    <configuration>
        <url>jdbc:postgresql://localhost:5432/mydb</url>
        <user>dbuser</user>
        <password>dbpass</password>
        <locations>
            <location>filesystem:src/main/resources/db/migration</location>
        </locations>
    </configuration>
    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.7.0</version>
        </dependency>
    </dependencies>
</plugin>
mvn flyway:migrate

Output:

[INFO] Successfully applied 2 migrations (execution time 00:00.156s)

Pas cu Pas

1. Adaugă plugin-ul în pom.xml

<build>
    <plugins>
        <plugin>
            <groupId>org.flywaydb</groupId>
            <artifactId>flyway-maven-plugin</artifactId>
            <version>10.0.0</version>
        </plugin>
    </plugins>
</build>

2. Configurează conexiunea și locațiile

<configuration>
    <url>jdbc:postgresql://localhost:5432/mydb</url>
    <user>${db.user}</user>
    <password>${db.password}</password>
    <locations>
        <location>classpath:db/migration</location>
    </locations>
</configuration>

3. Rulează comenzile Flyway

mvn flyway:migrate
mvn flyway:info
mvn flyway:validate
mvn flyway:repair

Sfaturi de Prevenție

  • Externalizează credentialele prin proprietăți Maven sau variabile de mediu
  • Leagă flyway:migrate de faza compile pentru migrări automate în build
  • Folosește flyway:validate în CI înainte de flyway:migrate
  • Verifică versiunile migrărilor cu flyway:info

Greșeli Comune

  1. Driver JDBC lipsă — fără dependența driverului, conexiunea eșuează cu No suitable driver
  2. Cale incorectă în locationsclasspath: vs filesystem:; classpath: caută în src/main/resources
  3. Plugin nelegat de fază — dacă nu specifici phase, migrarea nu rulează automat la mvn compile

Întrebări Frecvente

### Cum definesc proprietățile în `pom.xml`?
<properties>
    <db.url>jdbc:postgresql://localhost:5432/mydb</db.url>
    <db.user>${env.DB_USER}</db.user>
</properties>

Pot rula migrări înainte de testare?

Da — leagă flyway:migrate de faza pre-integration-test:

<execution>
    <phase>pre-integration-test</phase>
    <goals><goal>migrate</goal></goals>
</execution>

Cum configurez mai multe scheme?

Folosește <schemas>:

<schemas>
    <schema>public</schema>
    <schema>app</schema>
</schemas>

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Flyway pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro