Lewati ke konten

CLI

Shell
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:

Shell
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:

PHP
$store->stats();
$store->health();
$store->verify();
$store->repair();

DocStore menambahkan:

PHP
$docs->reindex();
$docs->compact(); // no-op report for API symmetry

SegmentedLog menambahkan:

PHP
$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.