Skip to content

Cum să gestionezi erorile de migrare în Flyway Teams

DodaTech Updated 2025-01-15 3 min read

In this tutorial, you'll learn about Cum să gestionezi erorile de migrare în Flyway Teams. We cover key concepts, practical examples, and best practices.

Vei învăța cum să identifici, să depanezi și să repari erorile comune de migrare în Flyway Teams, inclusiv checksum mismatch, migrări blocate și undo eșuat.

Problema

Migrările eșuează din diverse motive — SQL greșit, conflicte de versiune, checksum-uri incorecte, conexiune pierdută. Flyway Teams oferă instrumente avansate pentru gestionarea acestor erori.

Modul Greșit

# Când migrarea eșuează, mulți utilizatori ignoră eroarea
flyway migrate 2>&1 | tail -5
# "Migration V2__add_users.sql failed"
# Ignori și încerci din nou — baza de date rămâne într-o stare inconsistentă
flyway repair  # Fără să înțelegi cauza

Modul Corect

1. Identifică eroarea

flyway info

Output:

+-----------+---------+------------------+------+---------+
| Category  | Version | Description      | Type | State   |
+-----------+---------+------------------+------+---------+
| Versioned | 1       | create users     | SQL  | Success |
| Versioned | 2       | add users        | SQL  | Failed  |
+-----------+---------+------------------+------+---------+

2. Analizează log-ul detaliat

flyway migrate -debug 2>&1 | grep -A 10 "ERROR"

3. Repară în funcție de eroare

Pentru checksum mismatch:

# Nu edita migrarea! Creează una nouă
flyway repair  # Corectează checksum-ul în tabela de istoric

Pentru migrare blocată:

flyway repair -repairMode=MARK_FAILED
# Marchează migrarea eșuată ca atare

Pentru undo eșuat:

flyway info  # Verifică starea
flyway undo  # Încearcă din nou

Pas cu Pas

1. Diagnostichează cu flyway info

flyway info
# Arată starea fiecărei migrări

2. Alege strategia de reparare

# Cazul 1: Migrare eșuată ireversibil
flyway repair -repairMode=MARK_FAILED
# Creează o migrare nouă pentru corecție

# Cazul 2: Checksum mismatch
flyway repair
# Actualizează checksum-urile

# Cazul 3: Clean și reaplicare (doar în development)
flyway clean
flyway migrate

3. Creează o migrare de corecție

-- V4__fix_users_table.sql — migrare de corecție
ALTER TABLE users ADD COLUMN IF NOT EXISTS email VARCHAR(255);
UPDATE users SET email = 'unknown@example.com' WHERE email IS NULL;

Tipuri de Erori Comune

Eroare Cauză Soluție
Checksum mismatch Migrare editată după aplicare flyway repair sau creează migrare nouă
Migration failed SQL greșit în migrare Corectează SQL, flyway repair, creează migrare nouă
Validate failed Migrări în ordine greșită Rulează flyway migrate cu -outOfOrder=true
Undo failed Undo și migrarea nu se potrivesc Verifică versiunile U și V
Already applied Încerci să rulezi aceeași migrare Folosește flyway info pentru status
Target database not configured Conexiune incorectă Verifică flyway.url și credentialele

Sfaturi de Prevenție

  • Rulează flyway validate înainte de fiecare migrare
  • Configurează flyway.validateOnMigrate=true
  • Nu edita niciodată migrări aplicate
  • Păstrează migrările mici și focusate
  • Testează migrările într-un mediu de staging

Greșeli Comune

  1. Editarea migrărilor aplicate — duce la checksum mismatch și baze de date inconsecvente
  2. Repair fără investigare — acoperă eroarea fără să o rezolve
  3. Clean în producție — șterge toate datele; setează flyway.cleanDisabled=true
  4. Ignorarea migrărilor eșuate — baza de date rămâne într-o stare intermediară

Întrebări Frecvente

### Cum recuperez dintr-o migrare eșuată fără Flyway Teams?

În ediția Community, trebuie să repari manual baza de date și să rulezi flyway repair. Teams are -repairMode=MARK_FAILED.

Pot să sar peste o migrare eșuată?

Nu direct. Folosește flyway repair -repairMode=MARK_FAILED pentru a o marca ca eșuată și creează o migrare nouă.

Cum evit erorile de migrare în echipe mari?

Folosește branch-uri separate, rulează flyway validate în CI, și configurează flyway.outOfOrder=true pentru a permite migrări în ordine diferită.

Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Flyway Teams pentru gestionarea erorilor.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro