KUSANAGIのbcacheテーブルが無かった

この頃、なんかサーバー応答時間が遅くなったかな? みたいに感じていたので、nginx のエラーログを見てみたところ……ファ!?

wp_site_cache テーブルが無いよというエラーが出ております。これ、最初から出ていたかもしれませんが今まで気付かなかったというていたらく。

実は別のプラグインでも、インストール時に必要なテーブルが作成されない問題がありました。KUSANAGI 環境の問題なのか、このサイト固有の問題なのかは分かりません。

その時は直接テーブルを作成して問題を解決できたのですが、KUSANAGI の情報はあまり多くないので果たして……と思っていたら、本家のコラムに情報がありました。

こちらの記事の終わりのほうに、「bcacheの仕組み」という解説がありまして、ここに奇跡的にピッタリな情報が。テーブル構造を載せてくれています。こちらの情報を元に MariaDB(mysql) で SQL文によるテーブル作成を行います。実行する SQL文は以下の通り。

create table wp.wp_site_cache (hash varchar(32),
    content longtext,
    device_url text,
    type varchar(20) NOT NULL,
    post_type varchar(200),
    headers text,
    user_agent text,
    server varchar(16),
    updating tinyint(1) DEFAULT 0,
    create_time datetime,
    expire_time datetime
);

create index sc_hash on wp_site_cache(hash);
create index sc_type on wp_site_cache(type);
create index sc_updating on wp_site_cache(updating);
create index sc_expire on wp_site_cache(expire_time);

これで bcache に必要なテーブルが作成されますので、以降はキャッシュテーブルが無い事によるエラーが発生しなくなります。PHP のエラーの中でも、DB系のエラーは特に影響が大きいので、本当はサイト構築直後にしっかり調べて、エラーが無いようにしないといけません。

 

……ははは……正規のやり方は、WordPress のバックアップを取って、KUSANAGI プロビジョニングからやり直すしかないと思いますが、今回はテーブル構造が分かったのでピンポイントで修復してみました。

おかげで? 0.1sec くらいレスポンスが早くなりました。