Skip to content

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

  1. Callback SQL eșuat — o eroare într-un callback oprește întreaga migrare.
  2. Callback în tranzacțiebeforeEachMigrate rulează în aceeași tranzacție cu migrarea.
  3. Callback nerecunoscut — numele fișierului trebuie să se potrivească exact cu un nume de eveniment.

FAQ

### Callback-urile se văd în tabelul de istoric?

Nu. Callback-urile nu sunt înregistrate în flyway_schema_history.

Pot avea callback-uri în mai multe locații?

Da, configurează mai multe căi în flyway.callbacks separate prin virgulă.

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