Exportă doar schema (structura) dintr-un dump SQL

Ai un dump complet pe disc, dar vrei doar structura — CREATE TABLE, indexuri, chei străine — fără tabelele de jurnale cu 89 de milioane de rânduri. Sau invers: doar datele, fără instrucțiuni CREATE. Iată de ce flag-urile obișnuite de dump nu ajută un fișier existent și cum separi structura de date dintr-un clic.

Trei situații apar mereu:

De ce mysqldump --no-data nu este suficient

Sfatul clasic este mysqldump --no-data (doar structura) sau mysqldump --no-create-info (doar datele). Ambele sunt flag-uri de export: schimbă ce conține un dump proaspăt dintr-o bază de date în funcțiune. Nu fac nimic pentru un dump pe care îl ai deja pe disc ca fișier .sql.

În practică, fișierul ajunge adesea de la altcineva, dintr-o sarcină de backup, sau de la un server la care nu mai ai acces live. Nu poți rula din nou mysqldump pe o bază de date care nu e accesibilă — credențialele sunt pierdute, serverul este scos din uz, sau fișierul este pur și simplu tot ce ți s-a dat. În acel moment flag-urile sunt inutile și rămâi să editezi fișierul însuși.

Calea manuală

Mișcarea evidentă este să elimini linii cu grep sau sed. Ca să păstrezi structura și să elimini datele:

# păstrează totul în afară de rândurile INSERT
grep -v '^INSERT INTO' dump.sql > schema.sql

# sau păstrează doar rândurile INSERT pentru un fișier doar cu date
grep '^INSERT INTO' dump.sql > data.sql

Asta pare în regulă pe un dump mic și ordonat — și apoi se strică pe unul real:

Ajungi să-ți depanezi propriul filtru în loc să-ți obții schema.

Doar structura sau doar datele cu DumpCleaner

DumpCleaner înțelege instrucțiunile SQL în loc să potrivească linii, așa că separă structura de date în mod fiabil — pe fișiere de orice dimensiune:

  1. Trage dump-ul tău .sql în DumpCleaner (MySQL, MariaDB sau PostgreSQL). Parsează fișierul prin streaming, așa că un dump de mai mulți gigaocteți se încarcă cu memorie constantă.
  2. Comută tipurile de instrucțiuni pe care le vrei: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Debifează INSERT INTO și obții doar structura; debifează CREATE TABLE / CREATE INDEX și obții doar datele.
  3. Sau alege o presetare — Doar structura sau Doar datele — pentru a seta fiecare comutator dintr-un pas, apoi ajustează pe fiecare tabel dacă vrei.
  4. Exportă. Obții un fișier de schemă suplu pentru staging sau CI, sau un dump curat doar cu date pentru inițializare.

Pentru că filtrul este conștient de instrucțiuni, un INSERT extins pe mai multe linii este păstrat sau eliminat în întregime — niciodată tăiat la mijloc.

Adevărata putere este că filtrarea funcționează pe fiecare tip de instrucțiune și pe fiecare tabel, iar cele două se combină. Poți păstra structura fiecărui tabel, dar să incluzi datele INSERT doar pentru cele trei tabele de care ai nevoie cu adevărat — lăsând tabelul logs cu 89 de milioane de rânduri ca o carcasă goală. Asta e ceva ce niciun flag --no-data nu poate exprima.

Separă structura de date în câteva secunde

DumpCleaner filtrează un dump existent după tipul de instrucțiune și după tabel — doar structura, doar datele sau orice combinație — prin streaming, cu memorie constantă. Aplicație nativă macOS & iPadOS, cu o singură achiziție.

Descarcă din App Store

Întrebări frecvente

Pot exporta datele fără schemă?

Da. Dezactivează CREATE TABLE și CREATE INDEX (sau alege presetarea Doar datele) și păstrează INSERT INTO. DumpCleaner exportă doar rândurile, gata de încărcat într-o schemă care există deja.

Un export doar cu structura păstrează indexurile și cheile străine?

Da. Doar structura păstrează CREATE TABLE, CREATE INDEX, ALTER TABLE și definițiile cheilor străine — tot ce definește baza de date. Doar rândurile de date INSERT sunt eliminate.

Pot combina — structura pentru toate tabelele, datele pentru unele?

Da. Filtrarea este pe fiecare tip de instrucțiune și pe fiecare tabel, iar ambele se combină. Păstrează structura fiecărui tabel, dar include datele INSERT doar pentru cele câteva tabele de care ai nevoie cu adevărat.

Funcționează cu PostgreSQL?

Da. DumpCleaner citește dump-uri MySQL, MariaDB și PostgreSQL și detectează formatul automat, așa că exporturile doar cu structura și doar cu date funcționează la fel pentru fișierele pg_dump.

Schema fără date — sau datele fără schemă

Trage, comută tipurile de instrucțiuni, exportă. DumpCleaner împarte orice dump exact în partea de care ai nevoie.

Descarcă din App Store