公開と再構築
「保存できた」と「サイトに出た」は別です
MT は記事を保存すると同期で再構築しますが、そこで失敗しても API は 200 を 返します。しかも原因はその記事とは関係のないテンプレートのことがあります (アーカイブテンプレートの1つにエラーがあると、記事の個別アーカイブごと 書き出されません)。
手がかりは MT のログにしか残りません。ログを自分で確認しないかぎり気づけません。
反映まで確かめる — --verify-publish
mtb sites entries update 6 309 --entry '{"title":"…"}' --verify-publish
# => 保存はできましたが、静的ファイルの書き出しに失敗しています(MT のログに 1 件のエラー)。
# Error during publishing: ... Cannot find template 'main_index'送信の前後でサイトのエラーログを見比べ、エラーが増えていればその内容を表示して 終了コード 8 で終了します。時刻ではなくログのIDで前後を区別するので、 サーバとこちらの時計がずれていても取りこぼしません。
- リクエストが2回増えるので既定では off です
- ログが読めないとき(権限不足など)は、確認できなかったことを伝えるだけで、 成功した保存をエラーにはしません
既定で付けるものではなく、公開まで確かめたい変更にだけ付けるのが目安です。
再構築 — publish entries
mtb publish entries --ids 42,43 # 記事に関係するアーカイブ
mtb sites templates publish 1 5 # index テンプレート(同期。すぐ反映される)1回では終わりません
{"status":"Rebuilding"} は受け付けたことを示すだけで、未処理の分は restIds に入ります。restIds が空になるまで呼び直すのが本来の使い方で、 1回だけ呼んでやめると、成功したように見えます。
mtb publish entries --ids 42,43 --wait # restIds が空になるまで mtb が呼び直す手で呼び直すなら --start-time を必ず渡してください。 応答の startTime を 次の呼び出しで渡さないと、MT は毎回「新しい再構築」として受け付け直し、restIds が いつまでも減りません。エラーにはならず Rebuilding が返り続けるので、 自分では気づけません。
mtb publish entries --ids 42,43 --start-time 2026-08-29T08:29:57+00:00実測では渡さないと12回呼んでも6件のままで、渡すと2回で空になりました。 --wait を付けると、この呼び直しを mtb が代わりに行います。進み具合も監視し、restIds が 減らない呼び出しが3回続いたら終了コード 8 で停止します。
すぐ反映したいとき
対象を保存し直します。保存すると同期で再構築されます。
mtb sites entries update 2 7 --entry '{"excerpt":"(いまと違う値)"}'値が変わらない更新では再構築されません
同じタイトルを送り直しても MT は何もしないので、ファイルは古いままです。 実際に変わる値を送ってください。
--entry '{}' を送らないこと
空の更新は「何もしない」ではありません。指定しなかった関連(フォルダ・ カテゴリ)が解除されることがあります。 実際に、ページのフォルダの関連が解除されて URL が 変わった例があります。mtb は警告を出しますが、送信は止めません。
「再構築」と紛らわしいコマンド
mtb sites refresh-templates は「初期状態に戻す」です
名前から再構築だと思って実行すると、書いたテンプレートが全部消えます。 再構築は publish のほうです。
つまずいたら
| 症状 | 原因 | 対処 |
|---|---|---|
| 変更したのにサイトに出ない | 再構築していない | mtb publish entries --ids ... |
Rebuilding が返るのにファイルが変わらない | 1回では終わらない | --wait を付ける |
呼び直しても restIds が減らない | startTime を渡していない | 応答の startTime を --start-time で渡す |
| 保存は 200 なのに静的ファイルが増えない | 関係のないテンプレートにエラーがある | --verify-publish、または mtb sites logs list <site> --level error |
| 保存し直しても再構築されない | 値が変わらない更新 | 実際に変わる値を送る |