Extrage un singur tabel dintr-un dump MySQL

Ai un dump de 7 GB cu 127 de tabele, dar local ai nevoie doar de trei dintre ele — users, orders, products. Iată de ce se strică trucurile obișnuite cu sed/grep și cum să extragi exact tabelele dorite (cu cheile lor străine) din câteva clicuri.

Nu orice sarcină are nevoie de întreaga bază de date. Când construiești o funcționalitate local, rareori vrei un dump complet de producție care să-ți umple discul și să dureze o oră pentru import. Vrei doar mâna de tabele pe care funcționalitatea le atinge cu adevărat.

La fel se întâmplă când depanezi un singur tabel — reproducerea unei probleme de date din orders nu necesită celelalte 126 de tabele — sau când faci o migrare parțială, unde doar câteva tabele trec la un serviciu nou. În toate aceste cazuri întrebarea este aceeași: cum scot doar aceste tabele dintr-un dump uriaș, curat și rapid?

Abordarea sed/grep și de ce se strică

Răspunsul clasic este să feliezi fișierul cu sed între anteturile de secțiune pe care mysqldump le scrie pentru fiecare tabel:

# extrage tabelul users dintr-un fișier mysqldump
sed -n '/-- Table structure for table `users`/,/-- Table structure for table/p' dump.sql > users.sql

Pare ingenios și, pe un dump mic și ordonat, ar putea chiar funcționa o dată. Pe un fișier real de 7 GB, se destramă în multe moduri subtile:

Ajungi să îngrămădești awk peste grep peste sed, să testezi pe subseturi și tot să nu ai încredere în rezultat. Există o cale mai bună.

Extrage tabele cu DumpCleaner

DumpCleaner parsează dump-ul corect — înțelege granițele instrucțiunilor, INSERT-urile pe mai multe linii, backtick-urile și comentariile — așa că taie mereu pe liniile potrivite. Extragerea tabelelor de care ai nevoie durează patru pași:

  1. Trage dump-ul tău .sql înăuntru. DumpCleaner face streaming prin fișier, așa că un dump de 7 GB se deschide cu memorie constantă, în loc să încarce totul.
  2. Citește lista de tabele detectată automat. Fiecare tabel este parsat și listat cu numărul de rânduri și dimensiunea sa — fără derulare prin milioane de linii ca să afli ce e acolo.
  3. Alege tabelele dorite. Bifează users, orders și products, sau introdu un tipar regex / de excludere precum *_logs pentru a elimina grupuri întregi dintr-o dată.
  4. Include părinții cheilor străine și exportă. Opțional, adaugă automat tabelele părinte referențiate, apoi exportă un fișier curat, importabil.

Câteva lucruri fac asta mult mai puțin complicat decât instrumentele de shell:

Doar tabelele de care ai nevoie — nimic altceva

DumpCleaner extrage tabele anume din dump-uri de orice dimensiune — prin streaming, cu memorie constantă și cu cheile străine rezolvate pentru tine. Aplicație nativă macOS & iPadOS, cu o singură achiziție.

Descarcă din App Store

Întrebări frecvente

Pot extrage mai multe tabele deodată?

Da. Bifează câte tabele vrei — users, orders și products împreună — iar DumpCleaner le scrie pe toate într-un singur fișier, dintr-o singură trecere.

Păstrează dependențele de cheie străină?

Opțional, da. Activează include dependențele de cheie străină și orice tabel părinte referențiat de selecția ta este adus automat, astfel încât extragerea se importă fără erori de constrângere.

Pot exclude tabele după tipar?

Da. Folosește tipare de excludere precum *_logs sau *_sessions, sau o expresie regulată, pentru a elimina grupuri întregi de tabele în loc să le debifezi pe rând.

Funcționează cu PostgreSQL?

Da. DumpCleaner citește dump-uri MySQL, MariaDB și PostgreSQL (pg_dump) și gestionează numele calificate cu schema, precum public.users, la extragerea tabelelor.

Nu te mai lupta cu sed și grep

Trage, alege-ți tabelele, exportă. DumpCleaner extrage exact tabelele de care ai nevoie — cu cheile lor străine — din orice dump.

Descarcă din App Store