Vie vain skeema (rakenne) SQL-dumpista

Sinulla on täysi dumppi levyllä, mutta haluat vain rakenteen — CREATE TABLE, indeksit, viiteavaimet — ilman 89 miljoonan rivin lokitauluja. Tai päinvastoin: vain datan, ei CREATE-lauseita. Tässä miksi tavalliset dumppauksen liput eivät auta valmiin tiedoston kanssa, ja kuinka erotat rakenteen datasta yhdellä klikkauksella.

Kolme tilannetta tulee toistuvasti esiin:

Miksi mysqldump --no-data ei riitä

Klassinen neuvo on mysqldump --no-data (vain rakenne) tai mysqldump --no-create-info (vain data). Molemmat ovat vientilippuja: ne muuttavat sitä, mitä tuore dumppi ajossa olevasta tietokannasta sisältää. Ne eivät tee mitään dumpille, joka sinulla jo on levyllä .sql-tiedostona.

Käytännössä tiedosto tulee usein joltain toiselta, tai varmuuskopiointityöstä, tai palvelimelta johon sinulla ei enää ole live-pääsyä. Et voi ajaa mysqldump:ia uudelleen tietokantaa vasten johon ei pääse — tunnukset ovat poissa, palvelin on poistettu käytöstä, tai tiedosto on yksinkertaisesti kaikki mitä sinulle annettiin. Siinä kohtaa liput ovat hyödyttömiä, ja sinun on muokattava itse tiedostoa.

Manuaalinen tapa

Ilmeinen siirto on riisua rivit grep:llä tai sed:llä. Säilyttääksesi rakenteen ja pudottaaksesi datan:

# säilytä kaikki paitsi INSERT-rivit
grep -v '^INSERT INTO' dump.sql > schema.sql

# tai säilytä vain INSERT-rivit vain dataa sisältävälle tiedostolle
grep '^INSERT INTO' dump.sql > data.sql

Tämä näyttää hyvältä pienessä, siistissä dumpissa — ja hajoaa sitten oikeassa:

Päädyt debuggaamaan omaa suodatintasi sen sijaan, että saisit skeemasi.

Vain rakenne tai vain data DumpCleanerilla

DumpCleaner ymmärtää SQL-lauseita rivien täsmäämisen sijaan, joten se erottaa rakenteen datasta luotettavasti — minkä tahansa kokoisissa tiedostoissa:

  1. Vedä .sql-dumppisi DumpCleaneriin (MySQL, MariaDB tai PostgreSQL). Se jäsentää tiedoston striimaten, joten monen gigatavun dumppi latautuu vakiomuistilla.
  2. Kytke päälle haluamasi lausetyypit: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Poista rasti kohdasta INSERT INTO ja saat vain rakenteen; poista rasti kohdista CREATE TABLE / CREATE INDEX ja saat vain datan.
  3. Tai valitse esiasetus — Vain rakenne tai Vain data — asettaaksesi jokaisen valinnan yhdellä askeleella, ja hienosäädä sitten taulukohtaisesti halutessasi.
  4. Vie. Saat kevyen skeematiedoston stagingiin tai CI:hin, tai puhtaan vain dataa sisältävän dumpin siementämistä varten.

Koska suodatin on lausetietoinen, monirivinen laajennettu INSERT säilytetään tai pudotetaan kokonaisuutena — ei koskaan leikata keskeltä.

Todellinen voima on siinä, että suodatus toimii lausetyypeittäin ja tauluittain, ja nämä kaksi yhdistyvät. Voit säilyttää jokaisen taulun rakenteen mutta sisällyttää INSERT-datan vain kolmelle taululle, joita oikeasti tarvitset — jättäen 89 miljoonan rivin logs-taulun tyhjäksi kuoreksi. Sitä ei mikään --no-data-lippu osaa ilmaista.

Erota rakenne datasta sekunneissa

DumpCleaner suodattaa olemassa olevaa dumppia lausetyypeittäin ja tauluittain — vain rakenne, vain data, tai mikä tahansa yhdistelmä — striimaten, vakiomuistilla. Natiivi macOS- & iPadOS-sovellus, kertaosto.

Lataa App Storesta

Usein kysytyt kysymykset

Voinko viedä datan ilman skeemaa?

Kyllä. Poista käytöstä CREATE TABLE ja CREATE INDEX (tai valitse Vain data -esiasetus) ja säilytä INSERT INTO. DumpCleaner vie vain rivit, valmiina ladattaviksi jo olemassa olevaan skeemaan.

Säilyttääkö vain rakenteen vienti indeksit ja viiteavaimet?

Kyllä. Vain rakenne säilyttää CREATE TABLE-, CREATE INDEX-, ALTER TABLE -lauseet ja viiteavainmäärittelyt — kaiken, mikä määrittelee tietokannan. Vain INSERT-datarivit poistetaan.

Voinko sekoittaa — rakenteen kaikille tauluille, datan joillekin?

Kyllä. Suodatus on lausetyypeittäin ja tauluittain, ja molemmat yhdistyvät. Säilytä jokaisen taulun rakenne mutta sisällytä INSERT-data vain niille harvoille tauluille, joita oikeasti tarvitset.

Toimiiko tämä PostgreSQL:n kanssa?

Kyllä. DumpCleaner lukee MySQL-, MariaDB- ja PostgreSQL-dumppeja ja tunnistaa formaatin automaattisesti, joten vain rakenne- ja vain data -viennit toimivat samalla tavalla pg_dump-tiedostoille.

Skeema ilman dataa — tai data ilman skeemaa

Vedä, kytke lausetyypit, vie. DumpCleaner erottaa mistä tahansa dumpista juuri sen osan jonka tarvitset.

Lataa App Storesta