Cum să configurezi callback-uri în Flyway
DodaTech
Updated 2025-01-15
1 min read
In this tutorial, you'll learn about Cum să configurezi callback. We cover key concepts, practical examples, and best practices.
Callback-urile în Flyway îți permit să executai scripturi SQL sau cod Java la momente cheie ale ciclului de viață al migrărilor — înainte, după sau în caz de eroare.
Problema
Ai nevoie de acțiuni automate în jurul migrărilor: notificări, backup-uri, validări suplimentare sau actualizări de configurare.
Configurare de bază
# flyway.conf
flyway.callbacks=db/callbacks
Structură callbacks
db/callbacks/
beforeMigrate.sql
afterMigrate.sql
beforeEachMigrate.sql
afterEachMigrate.sql
afterVersionedMigrate.sql
Exemplu callback SQL
-- db/callbacks/beforeMigrate.sql
CREATE TABLE IF NOT EXISTS migration_audit (
action VARCHAR(50),
started_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
INSERT INTO migration_audit (action) VALUES ('migration_started');
Tipuri de callback-uri
| Nume fișier | Moment execuție |
|---|---|
beforeMigrate.sql |
Înainte de toate migrările |
afterMigrate.sql |
După toate migrările |
beforeEachMigrate.sql |
Înainte de fiecare migrare |
afterEachMigrate.sql |
După fiecare migrare |
beforeValidate.sql |
Înainte de validare |
afterVersionedMigrate.sql |
După migrările versionate |
afterConnect.sql |
După conectarea la bază |
Callback-uri Java
import org.flywaydb.core.api.callback.Callback;
import org.flywaydb.core.api.callback.Context;
import org.flywaydb.core.api.callback.Event;
public class MigrationCallback implements Callback {
@Override
public boolean supports(Event event, Context context) {
return event == Event.AFTER_MIGRATE;
}
@Override
public void handle(Event event, Context context) {
System.out.println("Migrare finalizată cu succes!");
}
@Override
public boolean canHandleInTransaction(Event event, Context context) {
return true;
}
@Override
public String getCallbackName() {
return "myCallback";
}
}
Erori frecvente
- Callback SQL eșuat — o eroare într-un callback oprește întreaga migrare.
- Callback în tranzacție —
beforeEachMigraterulează în aceeași tranzacție cu migrarea. - Callback nerecunoscut — numele fișierului trebuie să se potrivească exact cu un nume de eveniment.
FAQ
Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with Flyway for enhanced productivity and security.
← Previous
Fix Flyway Clean Repair – Clean Not Removing Objects
Next →
Cum să configurezi comportamentul de clean în Flyway
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro