Skip to content

Cum să folosești undo în Flyway Teams

DodaTech Updated 2025-01-15 2 min read

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 de flyway undo
  • Păstrează undo-urile doar în branch-uri de feature, nu în main

Greșeli Comune

  1. Undo fără undoOnMigrate=true — Flyway ignoră undo-urile dacă această proprietate nu e activată
  2. Undo în producție — poate cauza pierderi de date; preferă migrări de corecție
  3. Undo aplicat peste o altă migrare — undo anulează doar ultima; poți anula mai multe cu -target
  4. Versiuni incorecte între V și UU2 trebuie să corespundă lui V2; altfel Flyway nu le asociază

Întrebări Frecvente

### Undo funcționează în Flyway Community?

Nu. flyway undo este disponibil doar în Flyway Teams și Enterprise. Community nu are suport pentru undo.

Ce se întâmplă dacă rulez flyway undo de două ori?

Prima dată anulează ultima migrare. A doua oară anulează penultima. Poți folosi flyway info pentru a vedea starea curentă.

Pot anula o migrare care nu este ultima?

Da — folosește flyway undo -target=versiune. Flyway anulează toate migrările până la (inclusiv) versiunea specificată.

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