Mhux kull xogħol jeħtieġ id-database kollu. Meta qed tibni feature lokalment, rari trid dump sħiħ tal-produzzjoni jimla d-disk tiegħek u jieħu siegħa biex jimporta. Trid il-ftit tabelli li l-feature verament jmiss.
L-istess huwa minnu meta qed tiddebagja tabella waħda — li tirriproduċi problema ta' data f'orders ma jeħtieġx il-126 tabella l-oħra — jew tagħmel migrazzjoni parzjali, fejn ftit tabelli biss jiċċaqilqu għal servizz ġdid. F'dawn il-każijiet kollha l-mistoqsija hija l-istess: kif nikseb dawn it-tabelli biss minn dump ġgant, b'mod nadif u malajr?
L-approċċ sed/grep u għaliex jinkiser
It-tweġiba klassika hija li taqta' l-fajl b'sed bejn l-intestaturi tas-sezzjonijiet li mysqldump jikteb għal kull tabella:
# iġbed it-tabella users minn fajl mysqldump
sed -n '/-- Table structure for table `users`/,/-- Table structure for table/p' dump.sql > users.sql
Jidher intelliġenti, u fuq dump żgħir u nadif jista' saħansitra jaħdem darba. Fuq fajl reali ta' 7 GB jiġġarraf b'ħafna modi sottili:
- INSERTs b'diversi linji.
INSERT INTO ... VALUESwieħed jista' jinfirex fuq eluf ta' linji. Għodod orjentati lejn il-linji bħalsedugrepjaqtgħu dawk ir-ringieli min-nofs u jipproduċu fajl li ma jipparsjax. - Backticks u karattri speċjali. Il-valuri tal-kolonni fihom
--, semikolonji, backticks, kwotazzjonijiet u newlines ġewwa strings. Il-mudell tiegħek jaqbel test ġewwa d-data li qatt ma kien maħsub li jkun delimitatur. - Ismijiet ta' tabelli bħala substrings. Li testratti
userjieħu wkolluser_roles,user_sessionsupassword_user, għax l-isem jidher bħala substring ta' oħrajn. - Kummenti u intestaturi jvarjaw. It-test eżatt tal-kummenti jvarja bejn il-verżjonijiet ta' MySQL, MariaDB u PostgreSQL, u
pg_dumplanqas juża l-istess intestaturi — għalhekk l-istess kmand fis-skiet ma jirritorna xejn. - L-ebda għarfien tal-foreign key. Anke jekk taqta'
ordersperfettament, ir-ringieli tiegħu jirreferu għalusers.sedm'għandu l-ebda idea, għalhekk l-estratt jonqos milli jimporta bi żball ta' foreign key.
Tispiċċa tgħaqqad awk fuq grep fuq sed, tittestja fuq subsets, u xorta ma tafdax ir-riżultat. Hemm mod aħjar.
Estratti tabelli b'DumpCleaner
DumpCleaner jipparsja d-dump kif suppost — jifhem il-konfini tad-dikjarazzjonijiet, l-INSERTs b'diversi linji, il-backticks u l-kummenti — għalhekk dejjem jaqta' fuq il-linji t-tajba. Li testratti t-tabelli li teħtieġ jieħu erba' passi:
- Iġbed id-dump
.sqltiegħek ġewwa. DumpCleaner jistrimja l-fajl, għalhekk dump ta' 7 GB jinfetaħ b'memorja kostanti minflok itella' l-ħaġa kollha. - Aqra l-lista awtomatikament identifikata tat-tabelli. Kull tabella tiġi pparsjata u elenkata bl-għadd ta' ringieli u d-daqs tagħha — bla ma tiskrollja minn miljuni ta' linji biex issib x'hemm.
- Agħżel it-tabelli li trid. Immarka
users,ordersuproducts, jew ittajpja regex / mudell ta' esklużjoni bħal*_logsbiex twaqqa' gruppi sħaħ f'daqqa. - Inkludi l-ġenituri tal-foreign key u esporta. Fakultattivament iġbed it-tabelli ġenituri msemmija awtomatikament, imbagħad esporta fajl nadif u importabbli.
Ftit affarijiet jagħmlu dan ħafna inqas ta' fidil mill-għodod tax-shell:
- Mudelli ta' esklużjoni bħal
*_logsjew*_sessionsineħħu l-istorbju tal-awditjar u tas-sessjonijiet bla ma tneħħi l-marka ta' għexieren ta' tabelli bl-idejn. - Filtri regex iħalluk taqbel skont il-prefiss, is-suffiss jew kwalunkwe mudell — żomm kollox li jaqbel
shop_*, pereżempju. - Preview live juri eżattament liema tabelli se jispiċċaw fl-output hekk kif tibdel l-għażla.
- Daqs tal-output stmat jgħidlek kemm se jkun kbir l-estratt qabel ma tesporta, biex tkun taf li se jidħol lokalment.
- Dipendenzi tal-foreign key jistgħu jiġu inklużi awtomatikament, biex li tagħżel
ordersfis-skiet iġibusersmiegħu u l-estratt jimporta bla żbalji ta' constraint.
It-tabelli li teħtieġ biss — xejn iżjed
DumpCleaner jestratti tabelli speċifiċi minn dumps ta' kwalunkwe daqs — bi streaming, b'memorja kostanti, u bil-foreign keys riżolti għalik. App nattiva għal macOS & iPadOS, xiri ta' darba.
Niżżel mill-App StoreMistoqsijiet frekwenti
Nista' nestratti diversi tabelli f'daqqa?
Iva. Immarka kemm tabelli trid — users, orders u products flimkien — u DumpCleaner jiktibhom kollha f'fajl wieħed f'pass wieħed.
Iżomm id-dipendenzi tal-foreign key?
Fakultattivament, iva. Ixgħel inkludi d-dipendenzi tal-foreign key u kwalunkwe tabella ġenitur imsemmija mill-għażla tiegħek tiġi miġbuda awtomatikament, biex l-estratt jimporta bla żbalji ta' constraint.
Nista' neskludi tabelli skont mudell?
Iva. Uża mudelli ta' esklużjoni bħal *_logs jew *_sessions, jew espressjoni regulari, biex twaqqa' gruppi sħaħ ta' tabelli minflok ma tneħħi l-marka tagħhom waħda waħda.
Jaħdem b'PostgreSQL?
Iva. DumpCleaner jaqra dumps ta' MySQL, MariaDB u PostgreSQL (pg_dump), u jimmaniġġja ismijiet ikkwalifikati bl-iskema bħal public.users meta jestratti tabelli.
Ieqaf tiġġieled ma' sed u grep
Iġbed, agħżel it-tabelli tiegħek, esporta. DumpCleaner jiġbed eżattament it-tabelli li teħtieġ — bil-foreign keys tagħhom — minn kwalunkwe dump.
Niżżel mill-App Store