Niet elke klus heeft de hele database nodig. Als je lokaal een feature bouwt, wil je zelden een volledige productiedump die je schijf volzet en een uur nodig heeft om te importeren. Je wilt de handvol tabellen die de feature daadwerkelijk raakt.
Hetzelfde geldt wanneer je één enkele tabel debugt — een dataprobleem in orders reproduceren vereist niet de andere 126 tabellen — of een gedeeltelijke migratie doet, waarbij slechts een paar tabellen naar een nieuwe service verhuizen. In al deze gevallen is de vraag dezelfde: hoe krijg ik alleen deze tabellen uit een gigantische dump, schoon en snel?
De sed/grep-aanpak en waarom die breekt
Het klassieke antwoord is om het bestand met sed te knippen tussen de sectiekoppen die mysqldump voor elke tabel schrijft:
# haal de users-tabel uit een mysqldump-bestand
sed -n '/-- Table structure for table `users`/,/-- Table structure for table/p' dump.sql > users.sql
Het ziet er slim uit, en op een kleine, nette dump werkt het misschien zelfs één keer. Op een echt bestand van 7 GB valt het op talloze subtiele manieren uit elkaar:
- Meerregelige INSERTs. Eén enkele
INSERT INTO ... VALUESkan duizenden regels beslaan. Regelgeoriënteerde tools alssedengrepsnijden die rijen doormidden en produceren een bestand dat niet parseert. - Backticks en speciale tekens. Kolomwaarden bevatten
--, puntkomma's, backticks, aanhalingstekens en newlines binnen strings. Je patroon matcht tekst binnen de data die nooit als scheidingsteken bedoeld was. - Tabelnamen als deelstrings.
userextraheren pakt ookuser_roles,user_sessionsenpassword_usermee, omdat de naam als deelstring van andere voorkomt. - Commentaar en koppen verschuiven. De exacte commentaartekst verschilt tussen MySQL-, MariaDB- en PostgreSQL-versies, en
pg_dumpgebruikt helemaal niet dezelfde koppen — zo geeft hetzelfde commando stilzwijgend niets terug. - Geen besef van foreign keys. Zelfs als je
ordersperfect knipt, verwijzen de rijen naarusers.sedheeft geen idee, dus de extractie faalt bij het importeren met een foreign key-fout.
Je eindigt met awk op grep op sed gestapeld, test op deelverzamelingen, en vertrouwt het resultaat nog steeds niet. Er is een betere manier.
Tabellen extraheren met DumpCleaner
DumpCleaner parseert de dump netjes — het begrijpt statementgrenzen, meerregelige INSERTs, backticks en commentaar — dus het knipt altijd op de juiste regels. De tabellen die je nodig hebt extraheren gaat in vier stappen:
- Sleep je
.sql-dump erin. DumpCleaner streamt het bestand, dus een dump van 7 GB opent met constant geheugengebruik in plaats van het geheel te laden. - Lees de automatisch gedetecteerde tabellenlijst. Elke tabel wordt uitgeparseerd en getoond met zijn rij-aantal en grootte — geen gescroll door miljoenen regels om te vinden wat erin zit.
- Kies de tabellen die je wilt. Vink
users,ordersenproductsaan, of typ een regex- / uitsluitpatroon zoals*_logsom hele groepen in één keer te laten vallen. - Neem foreign key-parents mee en exporteer. Haal desgewenst de tabellen waarnaar wordt verwezen automatisch erbij, en exporteer dan een schoon, importeerbaar bestand.
Een paar dingen maken dit een stuk minder gepriegel dan shell-tools:
- Uitsluitpatronen zoals
*_logsof*_sessionsfilteren audit- en sessie-ruis eruit zonder tientallen tabellen met de hand uit te vinken. - Regex-filters laten je matchen op prefix, suffix of elk patroon — behoud bijvoorbeeld alles wat matcht met
shop_*. - Een live voorbeeld toont precies welke tabellen in de uitvoer belanden terwijl je de selectie aanpast.
- Een geschatte uitvoergrootte vertelt je hoe groot de extractie wordt vóór je exporteert, zodat je weet dat die lokaal past.
- Foreign key-afhankelijkheden kunnen automatisch worden meegenomen, zodat het kiezen van
ordersstilletjesusersmeebrengt en de extractie zonder constraint-fouten importeert.
Alleen de tabellen die je nodig hebt — niets anders
DumpCleaner extraheert specifieke tabellen uit dumps van elke grootte — streaming, met constant geheugengebruik, en met foreign keys voor je opgelost. Native macOS- & iPadOS-app, eenmalige aankoop.
Downloaden in de App StoreVeelgestelde vragen
Kan ik meerdere tabellen tegelijk extraheren?
Ja. Vink zoveel tabellen aan als je wilt — users, orders en products samen — en DumpCleaner schrijft ze allemaal in één bestand in één doorloop.
Behoudt het foreign key-afhankelijkheden?
Desgewenst, ja. Zet foreign key-afhankelijkheden meenemen aan en elke bovenliggende tabel waarnaar je selectie verwijst wordt automatisch meegenomen, zodat de extractie zonder constraint-fouten importeert.
Kan ik tabellen op patroon uitsluiten?
Ja. Gebruik uitsluitpatronen zoals *_logs of *_sessions, of een reguliere expressie, om hele groepen tabellen te laten vallen in plaats van ze één voor één uit te vinken.
Werkt het met PostgreSQL?
Ja. DumpCleaner leest MySQL-, MariaDB- en PostgreSQL-dumps (pg_dump) en verwerkt schema-gekwalificeerde namen zoals public.users bij het extraheren van tabellen.
Stop met vechten tegen sed en grep
Slepen, je tabellen kiezen, exporteren. DumpCleaner haalt precies de tabellen die je nodig hebt — mét hun foreign keys — uit elke dump.
Downloaden in de App Store