Exportera endast schemat (strukturen) från en SQL-dump

Du har en fullständig dump på disk, men du vill bara ha strukturen — CREATE TABLE, index, foreign keys — utan de 89 miljoner rader stora loggtabellerna. Eller tvärtom: bara datan, inga CREATE-satser. Här är varför de vanliga dumpflaggorna inte hjälper en befintlig fil, och hur du skiljer struktur från data med ett klick.

Tre situationer dyker upp gång på gång:

Varför mysqldump --no-data inte räcker

Det klassiska rådet är mysqldump --no-data (endast struktur) eller mysqldump --no-create-info (endast data). Båda är exportflaggor: de ändrar vad en ny dump från en körande databas innehåller. De gör ingenting för en dump du redan har liggande på disk som en .sql-fil.

I praktiken kommer filen ofta från någon annan, eller från ett säkerhetskopieringsjobb, eller från en server du inte längre har live-åtkomst till. Du kan inte köra om mysqldump mot en databas som inte är nåbar — inloggningsuppgifterna är borta, servern är avvecklad, eller filen är helt enkelt allt du fick. Vid den punkten är flaggorna värdelösa, och du står med att redigera själva filen.

Det manuella sättet

Det uppenbara draget är att skala bort rader med grep eller sed. För att behålla strukturen och släppa datan:

# behåll allt utom INSERT-rader
grep -v '^INSERT INTO' dump.sql > schema.sql

# eller behåll bara INSERT-raderna för en fil med enbart data
grep '^INSERT INTO' dump.sql > data.sql

Detta ser bra ut på en liten, städad dump — och går sedan sönder på en riktig:

Du slutar med att felsöka ditt eget filter i stället för att få ditt schema.

Endast struktur eller endast data med DumpCleaner

DumpCleaner förstår SQL-satser i stället för att matcha rader, så den skiljer struktur från data pålitligt — på filer av valfri storlek:

  1. Dra in din .sql-dump i DumpCleaner (MySQL, MariaDB eller PostgreSQL). Den tolkar filen genom att strömma, så en flergigabytesdump läses in med konstant minne.
  2. Växla de satstyper du vill ha: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Avmarkera INSERT INTO så får du endast struktur; avmarkera CREATE TABLE / CREATE INDEX så får du endast data.
  3. Eller välj en förinställning — Endast struktur eller Endast data — för att ställa in varje växel i ett steg, och finjustera sedan per tabell om du vill.
  4. Exportera. Du får en slimmad schemafil för staging eller CI, eller en ren dump med enbart data för seeding.

Eftersom filtret är satsmedvetet behålls eller släpps en fleradig utökad INSERT som en helhet — aldrig avklippt på mitten.

Den riktiga styrkan är att filtrering fungerar per satstyp och per tabell, och att de två kombineras. Du kan behålla strukturen på varje tabell men bara inkludera INSERT-data för de tre tabeller du faktiskt behöver — och lämna den 89 miljoner rader stora logs-tabellen som ett tomt skal. Det är något ingen --no-data-flagga kan uttrycka.

Skilj struktur från data på sekunder

DumpCleaner filtrerar en befintlig dump efter satstyp och efter tabell — endast struktur, endast data, eller valfri blandning — strömmande, med konstant minne. Inhemsk macOS- och iPadOS-app, engångsköp.

Ladda ner i App Store

Vanliga frågor

Kan jag exportera datan utan schemat?

Ja. Inaktivera CREATE TABLE och CREATE INDEX (eller välj förinställningen Endast data) och behåll INSERT INTO. DumpCleaner exporterar bara raderna, klara att läsas in i ett schema som redan finns.

Behåller en export med endast struktur index och foreign keys?

Ja. Endast struktur behåller CREATE TABLE, CREATE INDEX, ALTER TABLE och foreign key-definitionerna — allt som definierar databasen. Bara INSERT-dataraderna tas bort.

Kan jag blanda — struktur för alla tabeller, data för några?

Ja. Filtreringen är per satstyp och per tabell, och båda kombineras. Behåll strukturen på varje tabell men inkludera bara INSERT-data för de få tabeller du faktiskt behöver.

Fungerar detta med PostgreSQL?

Ja. DumpCleaner läser dumpar från MySQL, MariaDB och PostgreSQL och upptäcker formatet automatiskt, så export med endast struktur och endast data fungerar likadant för pg_dump-filer.

Schema utan data — eller data utan schema

Dra, växla satstyperna, exportera. DumpCleaner delar upp valfri dump i exakt den del du behöver.

Ladda ner i App Store