Eksporter kun skjemaet (strukturen) fra en SQL-dump

Du har en full dump på disk, men du vil bare ha strukturen — CREATE TABLE, indekser, fremmednøkler — uten loggtabellene på 89 millioner rader. Eller det motsatte: bare dataene, ingen CREATE-setninger. Her er hvorfor de vanlige dumpflaggene ikke hjelper for en eksisterende fil, og hvordan du skiller struktur fra data med ett klikk.

Tre situasjoner dukker stadig opp:

Hvorfor mysqldump --no-data ikke er nok

Det klassiske rådet er mysqldump --no-data (kun struktur) eller mysqldump --no-create-info (kun data). Begge er eksportflagg: de endrer hva en fersk dump fra en kjørende database inneholder. De gjør ingenting for en dump du allerede har liggende på disk som en .sql-fil.

I praksis kommer filen ofte fra noen andre, eller fra en sikkerhetskopieringsjobb, eller fra en server du ikke lenger har direkte tilgang til. Du kan ikke kjøre mysqldump på nytt mot en database som ikke er tilgjengelig — legitimasjonen er borte, serveren er avviklet, eller filen er rett og slett alt du fikk overlevert. På det punktet er flaggene ubrukelige, og du sitter igjen med å redigere selve filen.

Den manuelle måten

Det opplagte grepet er å fjerne linjer med grep eller sed. For å beholde strukturen og droppe dataene:

# behold alt unntatt INSERT-rader
grep -v '^INSERT INTO' dump.sql > schema.sql

# eller behold bare INSERT-radene for en fil med kun data
grep '^INSERT INTO' dump.sql > data.sql

Dette ser greit ut på en liten, ryddig dump — og bryter så sammen på en ekte:

Du ender opp med å feilsøke ditt eget filter i stedet for å få skjemaet ditt.

Kun struktur eller kun data med DumpCleaner

DumpCleaner forstår SQL-setninger i stedet for å matche linjer, så den skiller struktur fra data pålitelig — på filer av enhver størrelse:

  1. Dra .sql-dumpen din inn i DumpCleaner (MySQL, MariaDB eller PostgreSQL). Den parser filen ved å strømme, så en dump på flere gigabyte lastes med konstant minnebruk.
  2. Slå av og på setningstypene du vil ha: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Fjern haken på INSERT INTO, så får du kun struktur; fjern haken på CREATE TABLE / CREATE INDEX, så får du kun data.
  3. Eller velg en forhåndsinnstilling — Kun struktur eller Kun data — for å sette hver bryter i ett steg, og finjuster så per tabell om du vil.
  4. Eksporter. Du får en slank skjemafil for staging eller CI, eller en ren dump med kun data for seeding.

Fordi filteret er setningsbevisst, beholdes eller droppes en flerlinjers utvidet INSERT som en helhet — aldri kuttet på midten.

Den virkelige styrken er at filtreringen fungerer per setningstype og per tabell, og de to kombineres. Du kan beholde strukturen til hver tabell, men inkludere INSERT-data bare for de tre tabellene du faktisk trenger — og la logs-tabellen på 89 millioner rader stå som et tomt skall. Det er noe intet --no-data-flagg kan uttrykke.

Skill struktur fra data på sekunder

DumpCleaner filtrerer en eksisterende dump etter setningstype og etter tabell — kun struktur, kun data, eller en hvilken som helst blanding — strømmende, med konstant minnebruk. Innebygd macOS- & iPadOS-app, engangskjøp.

Last ned i App Store

Ofte stilte spørsmål

Kan jeg eksportere dataene uten skjemaet?

Ja. Deaktiver CREATE TABLE og CREATE INDEX (eller velg forhåndsinnstillingen Kun data) og behold INSERT INTO. DumpCleaner eksporterer bare radene, klare til å lastes inn i et skjema som allerede finnes.

Beholder en eksport med kun struktur indekser og fremmednøkler?

Ja. Kun struktur beholder CREATE TABLE, CREATE INDEX, ALTER TABLE og fremmednøkkeldefinisjonene — alt som definerer databasen. Bare INSERT-dataradene fjernes.

Kan jeg blande — struktur for alle tabeller, data for noen?

Ja. Filtreringen skjer per setningstype og per tabell, og begge kombineres. Behold strukturen til hver tabell, men inkluder INSERT-data bare for de få tabellene du faktisk trenger.

Fungerer dette med PostgreSQL?

Ja. DumpCleaner leser MySQL-, MariaDB- og PostgreSQL-dumper og oppdager formatet automatisk, så eksporter med kun struktur og kun data fungerer på samme måte for pg_dump-filer.

Skjema uten data — eller data uten skjema

Dra, slå av og på setningstypene, eksporter. DumpCleaner deler enhver dump i nøyaktig den delen du trenger.

Last ned i App Store