Ti trovi qui: start » it » Documentazione interna » Estensioni DokuWiki (WvdS) » Plugin DevOps Storage » Avvio rapido: la prima esportazione e il suo piano di importazione

Avvio rapido: la prima esportazione e il suo piano di importazione

Il percorso più breve da «il plugin è installato» a «un'esportazione completa dei dati DevOps è su disco e il piano per rimetterli dentro è stato letto». Tre passi, circa dieci minuti. Questa pagina è rivolta a chi sviluppa e a chi conduce l'esercizio.

Il motivo per farlo adesso e non nell'emergenza: è ciò che trasforma «abbiamo le copie di sicurezza» in «abbiamo i ripristini».

Prerequisiti

  • wkdostorage, wkcore e wkstorage sono installati e attivati.
  • PHP 8.2 o successivo con il driver PDO per SQLite.
  • La directory dei dati del wiki è scrivibile.
  • Un punto in cui poter eseguire PHP nel contesto del wiki — un plugin proprio o uno script di manutenzione che abbia caricato inc/init.php.

Passo 1: prelevare il servizio

$core = plugin_load('helper', 'wkcore');
$storage = (is_object($core) && method_exists($core, 'get'))
    ? $core->get('dwdo.storage')
    : null;
 
if ($storage === null) {
    return;   // storage assente — ridurre le funzioni, non interrompere
}

Non costruite da soli le classi dello storage. Il servizio è una factory pigra, ed è proprio questo a impedire che una richiesta che non tocca dati apra comunque un database.

Passo 2: scrivere l'esportazione

$export = $core->get('dwdo.export');
$percorso = $export->exporter()->exportToFile('/percorso/a/dwdo-backup.jsonl');

Il risultato è JSONL: un record per riga. Non è una questione di gusto. Il file si legge con i normali strumenti per righe, si divide, si accoda e si confronta riga per riga — e un file troncato perde il proprio ultimo record invece di diventare illeggibile.

Passo 3: leggere il piano di importazione — senza importare

$importer = $export->importer();
 
$plan = $importer->plan($jsonl);     // riferisce, non cambia nulla
// esaminare $plan

plan() esiste perché un'importazione serve proprio quando si è meno in grado di assorbire una sorpresa.

apply() esegue davvero l'importazione e lavora per impostazione predefinita con $replace = true — quindi sostituisce. Chiamatelo solo dopo aver letto il piano e se è quello che volete.

Verifica del risultato

  • Il file si trova al percorso indicato e contiene per riga un oggetto JSON completo. wc -l conta quindi i record.
  • Il piano per lo stesso file sulla stessa installazione in esercizio non descrive alcuna sorpresa — non dovrebbe annunciare nulla che non vi aspettiate. Se se ne discosta, avete trovato una domanda prima che diventasse costosa.

Passo successivo

  • wkstorage — lo strato sottostante: migrazioni, istruzioni preparate, transazioni.
  • wkdocore — il modello di progetto i cui dati stanno qui.
  • wkdostorage (in tedesco) — la pagina del pacchetto: servizi, modelli tipizzati, repository e formato di esportazione.
it/wiki/dwe/wkdostorage/quickstart.txt · Ultima modifica: da 0.0.0.0