Cum să gestionezi erorile de migrare în Flyway Teams
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
- Editarea migrărilor aplicate — duce la checksum mismatch și baze de date inconsecvente
- Repair fără investigare — acoperă eroarea fără să o rezolve
- Clean în producție — șterge toate datele; setează
flyway.cleanDisabled=true - Ignorarea migrărilor eșuate — baza de date rămâne într-o stare intermediară
Întrebări Frecvente
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