Tliet sitwazzjonijiet ikomplu jitfaċċaw:
- Twaqqaf skema għal staging jew CI — trid l-istruttura tat-tabelli vojta biex it-testijiet ikunu jistgħu jaħdmu kontra kolonni, indiċi u constraints reali, imma assolutament ma tridx tibgħat gigabytes ta' ringieli tal-produzzjoni f'ambjent li se jintrema.
- Data ta' seed biss — l-iskema diġà teżisti fid-database mira, u teħtieġ biss ir-ringieli INSERT biex timliha, bla dikjarazzjonijiet CREATE li jaħbtu ma' dak li hemm.
- Eħles mill-istorbju — id-dump huwa mimli żejda b'tabelli
logs,sessions,audit_trailjewcacheb'għexieren ta' miljuni ta' ringieli li qatt ma trid timporta.
Għaliex mysqldump --no-data mhux biżżejjed
Il-parir klassiku huwa mysqldump --no-data (struttura biss) jew mysqldump --no-create-info (data biss). It-tnejn huma flags tal-esportazzjoni: ibiddlu x'fih dump frisk minn database li qed jaħdem. Ma jagħmlu xejn għal dump li diġà għandek bilqiegħda fuq id-disk bħala fajl .sql.
Fil-prattika l-fajl ta' spiss jasal minn xi ħadd ieħor, jew minn xogħol ta' backup, jew minn server li m'għadx għandek aċċess live għalih. Ma tistax terġa' tħaddem mysqldump kontra database li mhux jista' jintlaħaq — il-kredenzjali ntilfu, is-server ġie diżattivat, jew il-fajl huwa sempliċiment kulma ġejt mgħoti. F'dak il-punt il-flags huma inutli, u tibqa' teditja l-fajl innifsu.
Il-mod manwali
Il-mossa ovvja hija li tneħħi l-linji b'grep jew sed. Biex iżżomm l-istruttura u twaqqa' d-data:
# żomm kollox ħlief ir-ringieli INSERT grep -v '^INSERT INTO' dump.sql > schema.sql # jew żomm biss ir-ringieli INSERT għal fajl bid-data biss grep '^INSERT INTO' dump.sql > data.sql
Dan jidher tajjeb fuq dump żgħir u nadif — u mbagħad jinkiser fuq wieħed reali:
- INSERTs b'diversi linji.
INSERT INTO … VALUESwieħed jista' jinfirex fuq eluf ta' linji.grepjaqbel l-ewwel linja u jħalli l-bqija tal-valuri orfni, u jipproduċi fajl imkisser. - Inserts estiżi. mysqldump jiġbor ħafna ringieli f'dikjarazzjoni waħda ġganti. Il-filtri bbażati fuq il-linji ma jistgħux jagħrfu fejn tispiċċa dikjarazzjoni bħal din.
- Kummenti u blokki. Blokki kundizzjonali
/*! … */,LOCK TABLES, u kummenti--jitħalltu mad-data, għalhekk filtru inġenwu jew iżomm il-junk jew jaqta' xi ħaġa li l-import jeħtieġ. - Data-biss huwa agħar.
grep '^INSERT'pur jarmi d-dikjarazzjonijietSETuLOCKli r-ringieli jiddependu minnhom, u kwalunkwe INSERT li ma jibdiex eżattament fil-kolonna żero fis-skiet jisparixxi.
Tispiċċa tiddebagja l-filtru tiegħek stess minflok ma tikseb l-iskema tiegħek.
Struttura-biss jew data-biss b'DumpCleaner
DumpCleaner jifhem id-dikjarazzjonijiet SQL minflok ma jqabbel linji, għalhekk jaqsam l-istruttura mid-data b'mod affidabbli — fuq fajls ta' kwalunkwe daqs:
- Iġbed id-dump
.sqltiegħek ġo DumpCleaner (MySQL, MariaDB jew PostgreSQL). Jipparsja l-fajl bi streaming, għalhekk dump ta' bosta gigabytes jitgħabba b'memorja kostanti. - Ibdel it-tipi ta' dikjarazzjonijiet li trid: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Neħħi l-marka ta' INSERT INTO u tikseb l-istruttura biss; neħħi l-marka ta' CREATE TABLE / CREATE INDEX u tikseb id-data biss.
- Jew agħżel preset — Struttura biss jew Data biss — biex tissettja kull toggle f'pass wieħed, imbagħad irfina għal kull tabella jekk trid.
- Esporta. Tikseb fajl tal-iskema mqatta' għal staging jew CI, jew dump data-biss nadif għas-seeding.
Peress li l-filtru huwa konxju tad-dikjarazzjonijiet, INSERT estiż b'diversi linji jinżamm jew jitwaqqa' bħala ħaġa waħda — qatt ma jinqata' min-nofs.
Il-qawwa reali hija li l-iffiltrar jaħdem skont it-tip ta' dikjarazzjoni u skont it-tabella, u t-tnejn jgħaqqdu. Tista' żżomm l-istruttura ta' kull tabella imma tinkludi d-data INSERT biss għat-tliet tabelli li verament teħtieġ — u tħalli t-tabella logs ta' 89-miljun ringiela bħala qoxra vojta. Dan huwa xi ħaġa li l-ebda flag --no-data ma jista' jesprimi.
Aqsam l-istruttura mid-data fi sekondi
DumpCleaner jiffiltra dump eżistenti skont it-tip ta' dikjarazzjoni u skont it-tabella — struttura biss, data biss, jew kwalunkwe taħlita — bi streaming, b'memorja kostanti. App nattiva għal macOS & iPadOS, xiri ta' darba.
Niżżel mill-App StoreMistoqsijiet frekwenti
Nista' nesporta d-data bla l-iskema?
Iva. Iddiżattiva CREATE TABLE u CREATE INDEX (jew agħżel il-preset Data biss) u żomm INSERT INTO. DumpCleaner jesporta biss ir-ringieli, lesti biex jitgħabbew f'skema li diġà teżisti.
Esportazzjoni ta' struttura-biss iżżomm l-indiċi u l-foreign keys?
Iva. Struttura biss iżżomm CREATE TABLE, CREATE INDEX, ALTER TABLE u d-definizzjonijiet tal-foreign key — kollox li jiddefinixxi d-database. Biss ir-ringieli tad-data INSERT jitneħħew.
Nista' nħallat — struttura għat-tabelli kollha, data għal xi wħud?
Iva. L-iffiltrar huwa skont it-tip ta' dikjarazzjoni u skont it-tabella, u t-tnejn jgħaqqdu. Żomm l-istruttura ta' kull tabella imma inkludi d-data INSERT biss għall-ftit tabelli li verament teħtieġ.
Dan jaħdem b'PostgreSQL?
Iva. DumpCleaner jaqra dumps ta' MySQL, MariaDB u PostgreSQL u jinnota l-format awtomatikament, għalhekk l-esportazzjonijiet ta' struttura-biss u data-biss jaħdmu bl-istess mod għal fajls ta' pg_dump.
Skema bla d-data — jew data bla l-iskema
Iġbed, ibdel it-tipi ta' dikjarazzjonijiet, esporta. DumpCleaner jaqsam kwalunkwe dump fl-eżatt parti li teħtieġ.
Niżżel mill-App Store