Hitri začetek: prvi izvoz in njegov načrt uvoza
Najkrajša pot od „vtičnik je nameščen“ do „popoln izvoz podatkov DevOps leži kot datoteka, načrt njihovega vračanja pa je prebran“. Trije koraki, približno deset minut. Ta stran je namenjena razvijalcem in tistim, ki sistem vodijo.
Razlog, da to storite zdaj in ne šele v sili: s tem „varnostne kopije imamo“ postane „obnovitve imamo“.
Predpogoji
wkdostorage,wkcoreinwkstorageso nameščeni in vklopljeni.- PHP 8.2 ali novejši z gonilnikom PDO za SQLite.
- Podatkovni imenik wikija je zapisljiv.
- Mesto, kjer lahko izvedete PHP v kontekstu wikija — lasten vtičnik ali vzdrževalna skripta, ki je naložila
inc/init.php.
Korak 1: prevzemite storitev
$core = plugin_load('helper', 'wkcore'); $storage = (is_object($core) && method_exists($core, 'get')) ? $core->get('dwdo.storage') : null; if ($storage === null) { return; // shrambe ni — zmanjšajte obseg, ne prekinjajte }
Razredov shrambe ne gradite sami. Storitev je lena tovarna, in prav to prepreči, da bi klic, ki se podatkov ne dotakne, sploh odprl podatkovno zbirko.
Korak 2: zapišite izvoz
$export = $core->get('dwdo.export'); $pot = $export->exporter()->exportToFile('/pot/do/dwdo-kopija.jsonl');
Rezultat je JSONL: en zapis na vrstico. To ni stvar okusa. Datoteko je mogoče brati z običajnimi vrstičnimi orodji, deliti, dopolnjevati in primerjati vrstico za vrstico — skrajšana datoteka pa izgubi svoj zadnji zapis, namesto da bi postala neberljiva.
Korak 3: preberite načrt uvoza — brez uvoza
$importer = $export->importer(); $plan = $importer->plan($jsonl); // poroča, ne spremeni ničesar // preglejte $plan
plan() obstaja, ker je uvoz potreben prav takrat, ko presenečenja najmanj prenesete.
apply() uvoz dejansko izvede in privzeto dela z $replace = true — torej zamenja. Pokličite ga šele, ko ste načrt prebrali in je to vaš namen.
Preverjanje rezultata
- Datoteka leži na navedeni poti in vsebuje na vrstico en popoln objekt JSON.
wc -ls tem šteje zapise. - Načrt za isto datoteko nad isto delujočo namestitvijo ne opisuje nobenih presenečenj — ne bi smel napovedovati ničesar, česar ne pričakujete. Če odstopa, ste našli vprašanje, preden je postalo drago.
Naslednji korak
- wkstorage — plast pod njim: migracije, pripravljeni stavki, transakcije.
- wkdocore — model projekta, čigar podatki ležijo tukaj.
- wkdostorage (v nemščini) — stran paketa: storitve, tipizirani modeli, repozitoriji in oblika izvoza.