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> adalah root penyimpanan yang digunakan saat membuka mesin, yaitu jalur
yang dikembalikan oleh StorageRoot::resolve(): direktori dasar ditambah namespace. Store
yang dibuka di bawah StorageRoot::resolve(__DIR__ . '/var/storh', 'app') berada di bawah
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
Memberikan direktori dasar saja (var/storh) akan mengarahkan perintah ke
koleksi yang belum ada, sehingga perintah melaporkan koleksi kosong alih-alih gagal.
vendor/bin/storh memerlukan storh 0.5.2 atau yang lebih baru saat storh dipasang sebagai
dependensi. Versi sebelumnya hanya mencari autoloader Composer di direktori vendor/ milik
paket sendiri dan gagal dengan kesalahan require.
CLI mencetak JSON yang stabil agar dapat digunakan dalam tugas cron dan pemeriksaan
kesehatan deployment. Koleksi bawaan adalah default; mesin bawaan adalah
doc untuk stats, verify, dan reindex, serta log untuk compact.
Metode pemeliharaan yang digunakan oleh perintah
Semua mesin menyediakan metode pemeliharaan yang dijalankan oleh CLI:
$store->stats();
$store->health();
$store->verify();
$store->repair();
DocStore menambahkan:
$docs->reindex();
$docs->compact(); // no-op report for API symmetry
SegmentedLog menambahkan:
$log->compact();
$log->recover();
$log->state_index();
Untuk DocStore, verify() memeriksa apakah record dapat diurai dengan benar dan apakah indeks kesetaraan,
rentang, serta gabungan cocok dengan hasil pemindaian penuh record. repair() mengarantina
file record yang rusak di bawah .storh/corrupt/ dan membangun ulang indeks dari record
valid.
Untuk SegmentedLog, verify() mendekode baris segmen dan membandingkan indeks status turunan saat ini dengan pemutaran ulang segmen yang baru. repair() membangun ulang status turunan dan memotong baris akhir yang terpotong.
Untuk Queue, verify() mendekode setiap peristiwa persisten dan membandingkan status pending,
processing, done, payload, serta urutan klaim dengan pemutaran ulang queue.log yang baru.
repair() membangun ulang status antrean dari log dan memasukkan kembali pekerjaan yang sedang diproses namun sudah melewati batas waktu.