CLI
vendor/bin/storh stats <root> [collection] [doc|log|queue]
vendor/bin/storh verify <root> [collection] [doc|log|queue]
vendor/bin/storh compact <root> [collection] [doc|log]
vendor/bin/storh reindex <root> [collection]
<root> est la racine de stockage avec laquelle les moteurs ont été ouverts : il s'agit du chemin renvoyé par StorageRoot::resolve(), composé du répertoire de base et de l'espace de noms. Un magasin ouvert sous StorageRoot::resolve(__DIR__ . '/var/storh', 'app') se trouve sous
var/storh/app :
vendor/bin/storh stats var/storh/app pages doc
vendor/bin/storh verify var/storh/app events log
vendor/bin/storh compact var/storh/app events log
vendor/bin/storh reindex var/storh/app pages
Passer uniquement le répertoire de base (var/storh) indique aux commandes une collection qui n'existe pas encore. Elles signalent donc une collection vide au lieu d'échouer.
vendor/bin/storh nécessite storh 0.5.2 ou une version ultérieure lorsque storh est installé comme dépendance. Les versions précédentes recherchaient uniquement l'autoloader Composer dans le répertoire vendor/ propre au paquet et échouaient avec une erreur require.
CLI affiche un JSON stable et peut donc être utilisé dans les tâches cron et les contrôles de disponibilité après déploiement. La collection par défaut est default ; le moteur par défaut est doc pour stats, verify et reindex, et log pour compact.
Méthodes de maintenance utilisées par les commandes
Tous les moteurs exposent les méthodes de maintenance pilotées par CLI :
$store->stats();
$store->health();
$store->verify();
$store->repair();
DocStore ajoute :
$docs->reindex();
$docs->compact(); // no-op report for API symmetry
SegmentedLog ajoute :
$log->compact();
$log->recover();
$log->state_index();
Pour DocStore, verify() vérifie que les enregistrements sont correctement analysés et que les index d'égalité, de plage et composés correspondent à un balayage complet des enregistrements. repair() place en quarantaine les fichiers d'enregistrement corrompus sous .storh/corrupt/ et reconstruit les index à partir des enregistrements valides.
Pour SegmentedLog, verify() décode les lignes des segments et compare l'index d'état dérivé actuel à une nouvelle relecture des segments. repair() reconstruit l'état dérivé et tronque les lignes finales incomplètes.
Pour Queue, verify() décode chaque événement durable et compare les états en attente, en cours de traitement et terminés, ainsi que les données utiles et l'ordre des revendications, à une nouvelle relecture queue.log. repair() reconstruit l'état de la file à partir du journal et remet en file les tâches en cours dont le délai a expiré.