Izvezite samo shemu (strukturu) iz SQL dumpa

Imate puni dump na disku, ali želite samo strukturu — CREATE TABLE, indekse, vanjske ključeve — bez tablica logova s 89 milijuna redaka. Ili obrnuto: samo podatke, bez CREATE naredbi. Evo zašto uobičajene zastavice za dump ne pomažu postojećoj datoteci i kako odvojiti strukturu od podataka u jednom kliku.

Tri se situacije stalno ponavljaju:

Zašto mysqldump --no-data nije dovoljan

Klasičan savjet je mysqldump --no-data (samo struktura) ili mysqldump --no-create-info (samo podaci). Oboje su zastavice izvoza: mijenjaju što novi dump iz pokrenute baze podataka sadrži. Ne čine ništa za dump koji već imate na disku kao .sql datoteku.

U praksi datoteka često stiže od nekog drugog, ili iz posla sigurnosne kopije, ili sa servera kojem više nemate živi pristup. Ne možete ponovno pokrenuti mysqldump nad bazom podataka koja nije dostupna — vjerodajnice su nestale, server je isključen iz upotrebe, ili je datoteka jednostavno sve što ste dobili. U tom trenutku zastavice su beskorisne, a ostaje vam uređivanje same datoteke.

Ručni način

Očit potez je ukloniti retke pomoću grep-a ili sed-a. Da zadržite strukturu i odbacite podatke:

# zadrži sve osim INSERT redaka
grep -v '^INSERT INTO' dump.sql > schema.sql

# ili zadrži samo INSERT retke za datoteku samo s podacima
grep '^INSERT INTO' dump.sql > data.sql

Ovo izgleda dobro na malom, urednom dumpu — a onda puca na stvarnom:

Na kraju otklanjate greške u vlastitom filtru umjesto da dobijete svoju shemu.

Samo struktura ili samo podaci s DumpCleanerom

DumpCleaner razumije SQL naredbe umjesto podudaranja redaka, pa pouzdano odvaja strukturu od podataka — na datotekama bilo koje veličine:

  1. Povucite svoj .sql dump u DumpCleaner (MySQL, MariaDB ili PostgreSQL). Parsira datoteku protočno, pa se dump od više gigabajta učitava uz konstantnu memoriju.
  2. Uključite vrste naredbi koje želite: CREATE TABLE, CREATE INDEX, INSERT INTO, ALTER, DROP, LOCK, SET. Odznačite INSERT INTO i dobivate samo strukturu; odznačite CREATE TABLE / CREATE INDEX i dobivate samo podatke.
  3. Ili odaberite unaprijed zadanu postavku — Samo struktura ili Samo podaci — da postavite svaku prekidač u jednom koraku, zatim po želji doradite po tablici.
  4. Izvezite. Dobivate vitku datoteku sheme za staging ili CI, ili čist dump samo s podacima za seed.

Budući da je filtar svjestan naredbi, višeredni prošireni INSERT zadržava se ili odbacuje kao cjelina — nikad ne prerezan po sredini.

Prava snaga je u tome što filtriranje radi po vrsti naredbe i po tablici, i to se dvoje kombinira. Možete zadržati strukturu svake tablice, ali uključiti INSERT podatke samo za tri tablice koje zaista trebate — ostavljajući tablicu logs s 89 milijuna redaka kao praznu ljušturu. To je nešto što nijedna --no-data zastavica ne može izraziti.

Odvojite strukturu od podataka u sekundama

DumpCleaner filtrira postojeći dump prema vrsti naredbe i prema tablici — samo struktura, samo podaci ili bilo koja mješavina — protočno, uz konstantnu memoriju. Nativna macOS i iPadOS aplikacija, jednokratna kupnja.

Preuzmi na App Storeu

Često postavljana pitanja

Mogu li izvesti podatke bez sheme?

Da. Onemogućite CREATE TABLE i CREATE INDEX (ili odaberite postavku Samo podaci) i zadržite INSERT INTO. DumpCleaner izvozi samo retke, spremne za učitavanje u shemu koja već postoji.

Zadržava li izvoz samo strukture indekse i vanjske ključeve?

Da. Samo struktura zadržava CREATE TABLE, CREATE INDEX, ALTER TABLE i definicije vanjskih ključeva — sve što definira bazu podataka. Uklanjaju se samo INSERT reci s podacima.

Mogu li miješati — strukturu za sve tablice, podatke za neke?

Da. Filtriranje je po vrsti naredbe i po tablici, i oboje se kombinira. Zadržite strukturu svake tablice, ali uključite INSERT podatke samo za nekoliko tablica koje zaista trebate.

Radi li ovo s PostgreSQL-om?

Da. DumpCleaner čita MySQL, MariaDB i PostgreSQL dumpove i automatski otkriva format, pa izvozi samo strukture i samo podataka rade jednako za pg_dump datoteke.

Shema bez podataka — ili podaci bez sheme

Povucite, uključite vrste naredbi, izvezite. DumpCleaner dijeli bilo koji dump na točno onaj dio koji trebate.

Preuzmi na App Storeu