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> — це кореневий каталог сховища, з яким було відкрито рушії, тобто шлях,
який повертає StorageRoot::resolve(): базовий каталог плюс простір імен. Сховище,
відкрите в StorageRoot::resolve(__DIR__ . '/var/storh', 'app'), розташоване в
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
Якщо передати лише базовий каталог (var/storh), команди звертатимуться до колекції,
якої ще немає, тому покажуть порожню колекцію, а не завершаться з помилкою.
vendor/bin/storh потребує storh 0.5.2 або новішої версії, коли storh встановлено як
залежність. Попередні версії шукали лише автозавантажувач Composer у власному каталозі vendor/ пакета
й завершувалися з помилкою require.
CLI виводить стабільний JSON, тому його можна використовувати в завданнях cron і перевірках
працездатності розгортання. За замовчуванням використовується колекція default; для рушія за замовчуванням
вибирається doc для stats, verify і reindex, а для compact — log.
Методи обслуговування, що лежать в основі команд
Усі рушії надають методи обслуговування, які викликає CLI:
$store->stats();
$store->health();
$store->verify();
$store->repair();
DocStore додає:
$docs->reindex();
$docs->compact(); // no-op report for API symmetry
SegmentedLog додає:
$log->compact();
$log->recover();
$log->state_index();
Для DocStore команда verify() перевіряє, чи коректно розбираються записи та чи відповідають індекси рівності,
діапазонів і складені індекси повному скануванню записів. Команда repair() поміщає
пошкоджені файли записів у карантин у .storh/corrupt/ і перебудовує індекси за коректними
записами.
Для SegmentedLog команда verify() декодує рядки сегментів і порівнює поточний
похідний індекс стану з результатом повторного відтворення сегментів. Команда repair() перебудовує похідний
стан і обрізає пошкоджені останні рядки.
Для Queue команда verify() декодує кожну довговічну подію та порівнює стан очікування,
обробки й виконання, дані та порядок отримання з результатом повторного відтворення queue.log.
Команда repair() перебудовує стан черги за журналом і повторно ставить у чергу завдання обробки,
час очікування яких минув.