Brzi početak: prvi izvoz i njegov plan uvoza
Najkraći put od „dodatak je instaliran“ do „potpun izvoz DevOps podataka leži kao datoteka, a plan njihova vraćanja pročitan je“. Tri koraka, otprilike deset minuta. Ova je stranica namijenjena programerima i onima koji sustav vode.
Razlog da se to učini sada, a ne tek u nuždi: time „imamo sigurnosne kopije“ postaje „imamo vraćanje“.
Preduvjeti
wkdostorage,wkcoreiwkstoragesu instalirani i uključeni.- PHP 8.2 ili noviji s PDO upravljačkim programom za SQLite.
- Direktorij za spremanje wikija je zapisiv.
- Mjesto na kojem možete izvesti PHP u kontekstu wikija — vlastiti dodatak ili skripta održavanja koja je učitala
inc/init.php.
Korak 1: dohvatite uslugu
$core = plugin_load('helper', 'wkcore'); $storage = (is_object($core) && method_exists($core, 'get')) ? $core->get('dwdo.storage') : null; if ($storage === null) { return; // pohrane nema — smanjite opseg, nemojte prekidati }
Razrede pohrane nemojte graditi sami. Usluga je lijena tvornica, a upravo to poziv koji ne dira podatke sprječava da uopće otvori bazu.
Korak 2: zapišite izvoz
$export = $core->get('dwdo.export'); $putanja = $export->exporter()->exportToFile('/putanja/do/dwdo-kopija.jsonl');
Rezultat je JSONL: jedan zapis po retku. To nije stvar ukusa. Datoteka se može čitati običnim alatima za retke, dijeliti, dopunjavati i uspoređivati redak po redak — a skraćena datoteka gubi svoj posljednji zapis umjesto da postane nečitljiva.
Korak 3: pročitajte plan uvoza — bez uvoza
$importer = $export->importer(); $plan = $importer->plan($jsonl); // izvještava, ne mijenja ništa // pregledajte $plan
plan() postoji jer je uvoz potreban upravo onda kada iznenađenja najmanje podnosite.
apply() uvoz doista provodi i zadano radi s $replace = true — dakle zamjenjuje. Pozovite ga tek kada ste plan pročitali i to je namjera.
Provjera rezultata
- Datoteka leži na navedenoj putanji i sadrži po retku jedan potpun JSON objekt.
wc -ltime broji zapise. - Plan za istu datoteku nad istom pokrenutom instalacijom ne opisuje nikakva iznenađenja — ne bi trebao najavljivati ništa što ne očekujete. Odstupi li, našli ste pitanje prije nego što je postalo skupo.
Sljedeći korak
- wkstorage — sloj ispod: migracije, pripremljene naredbe, transakcije.
- wkdocore — model projekta čiji podaci ovdje leže.
- wkdostorage (njemački) — stranica paketa: usluge, tipizirani modeli, repozitoriji i oblik izvoza.