Cum să folosești undo în Flyway Teams
In this tutorial, you'll learn about Cum să folosești undo în Flyway Teams. We cover key concepts, practical examples, and best practices.
Vei învăța cum să creezi și să rulezi undo migrations în Flyway Teams pentru a anula migrări aplicate greșit în medii de dezvoltare și testare.
Problema
O migrare aplicată greșit (DROP greșit, coloană ștearsă, date pierdute) poate bloca dezvoltarea. Flyway Community nu suportă undo. Flyway Teams oferă flyway undo pentru a anula ultima migrare.
Modul Greșit
-- V2__remove_email_column.sql
ALTER TABLE users DROP COLUMN email;
-- Gresit! Email era necesar pentru autentificare
flyway migrate # Aplici migrarea
# Acum trebuie să rescrii manual coloana — complicat
Modul Corect
-- V2__remove_email_column.sql (migrarea propriu-zisă)
ALTER TABLE users DROP COLUMN email;
-- U2__remove_email_column.sql (undo migration)
ALTER TABLE users ADD COLUMN email VARCHAR(255) NOT NULL DEFAULT '';
# Aplici migrarea
flyway migrate
# Successfully applied V2
# Realizezi eroarea — rulezi undo
flyway undo
Output:
Undo migration of version 2 — remove email column
Successfully undid 1 migration (execution time 00:00.045s)
Pas cu Pas
1. Creează migrarea și undo-ul
db/migration/
V1__create_users.sql
V2__remove_email_column.sql
U2__remove_email_column.sql ← undo pentru V2
2. Regula de denumire convenție
Undo-ul trebuie să aibă același număr de versiune ca migrarea originală, prefixat cu U în loc de V:
| Migrare | Undo |
|---|---|
| V1__create.sql | U1__create.sql |
| V2__alter.sql | U2__alter.sql |
| V3__add_index.sql | U3__add_index.sql |
3. Rulează undo
flyway undo
# Anulează doar ultima migrare aplicată
flyway undo -target=1
# Anulează până la versiunea 1 (inclusiv)
Sfaturi de Prevenție
- Testează undo-urile înainte de a le folosi în producție
- Nu te baza pe undo în producție — preferă migrări de corecție
- Verifică întotdeauna ce migrare va fi anulată cu
flyway infoînainte deflyway undo - Păstrează undo-urile doar în branch-uri de feature, nu în main
Greșeli Comune
- Undo fără
undoOnMigrate=true— Flyway ignoră undo-urile dacă această proprietate nu e activată - Undo în producție — poate cauza pierderi de date; preferă migrări de corecție
- Undo aplicat peste o altă migrare — undo anulează doar ultima; poți anula mai multe cu
-target - Versiuni incorecte între V și U —
U2trebuie să corespundă luiV2; altfel Flyway nu le asociază
Întrebări Frecvente
Construit de dezvoltătorii Doda Browser, DodaZIP și Durga Antivirus Pro. Instrumentele DodaTech se integrează perfect cu Flyway Teams pentru rollback sigur.
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro