Skip to content

Cum să compari două baze de date cu Liquibase diff

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să compari două baze de date cu Liquibase diff. We cover key concepts, practical examples, and best practices.

Comanda liquibase diff compară două baze de date și evidențiază diferențele dintre scheme, tabele, coloane și constrângeri, esențială pentru audit și sincronizare.

Problema

Când lucrezi cu mai multe medii (dev, staging, producție), schemele bazelor de date pot divergența. Identificarea manuală a diferențelor este lentă și predispusă la erori.

Comanda de bază

liquibase diff \
  --referenceUrl=jdbc:postgresql://localhost:5432/baza_referinta \
  --referenceUsername=user \
  --referencePassword=pass \
  --url=jdbc:postgresql://localhost:5432/baza_target \
  --username=user \
  --password=pass

Output exemplu:

Diff Results:
Reference Database: postgresql@localhost:5432/baza_referinta
Target Database: postgresql@localhost:5432/baza_target
Differences:
  - Table "users" missing in target
  - Column "email" has different type: VARCHAR(255) vs VARCHAR(100)
  - Missing foreign key "fk_orders_users" on target

Tipuri de diferențe detectate

  • Tabele lipsă sau în plus
  • Coloane cu nume, tip sau nullabilitate diferită
  • Chei primare și foreign key diferite
  • Indexuri și constrângeri unice
  • Vederi (views) și proceduri stocate

Opțiuni utile

# Include și diferențele de date
liquibase diff --includeData

# Exclude tabele specifice
liquibase diff --diffTypes=tables,columns,foreignkeys

Erori frecvente

  1. URL greșit — asigură-te că șirul JDBC este corect.
  2. Driver lipsă — plasează driverul JDBC în directorul liquibase/lib.
  3. Permisiuni insuficiente — utilizatorul bazei trebuie să aibă acces la information_schema.

FAQ

### Ce tipuri de diff suportă Liquibase?

Liquibase poate compara: tabele, coloane, chei primare, foreign key, indexuri, constrângeri unice, vederi și proceduri stocate.

Pot compara baze de date de tipuri diferite?

Da, Liquibase suportă diff între baze eterogene (ex: PostgreSQL vs MySQL), atâta timp cât ai driverele JDBC instalate.

Built by the developers of Doda Browser, DodaZIP, and Durga Antivirus Pro. DodaTech tools integrate seamlessly with Liquibase for enhanced productivity and security.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro