SQLiteって、他のDBよりも明らかに『型』が少ない。
それはもう本当に…。
『想定通り動いていない』とか、『随分レスポンスが遅い』とか、動きに何だか違和感がある場合において、作成されたテーブルにエラーが起きている可能性がある。
wordpressをupdateしたり、pluginをinstallした場合に起きやすいのだが、
SQLの構文エラーが起きて、
通常なら自動的に作られるハズの『テーブルが、出来ていなかった』り、
通常なら自動的に追加されるハズだった『カラムが、追加されていない』
ということが、起こり得る。
導入の直後に極端に不調でも起きるのであれば、何が原因かとか判別しやすいからいい。
だが、これが直後は特にエラーも違和感なく、調子にのって色々入れた後、使ってるうちに何だか調子悪いような気がして「どれだ…?」となってしまうことがしばしば…。
そんな『SQLiteプラグインと相性が悪いか後入れ判断する』際の解決法。
原因を探す
不具合が起きている場合には、対象wordpressの『.sqlite』ファイルがあるディレクトリに『debug.txt』が生成されている。
それを見ると『失敗したSQL』が表示されているので、『実際のテーブル』と照らし合わせる。
これで大体解決するのだが、詳細方法を一応記載しておく。
不足する『テーブル』『カラム』が『ある』場合
『失敗したSQL』と『実際のテーブル』を照らし合わせた際、『カラムがない』『テーブルがない』とかなら『実際のテーブル』にその『無いもの』を追加すれば解決する。
これが一番簡単にどうとでもなる問題。
不足する『テーブル』『カラム』が『無い』場合
無いものが『ない』場合が厄介で、プラグイン毎で対応が変わるので、ここで記載しようがない。
『debug.txt』を見れば、ソース全体から対象SQLを検索すると、プラグインや本体に関連付けられた場所が出てくる。
WordPress内の問題で現時点で確認した物
『wp_commentmeta』テーブルの作成が失敗する場合がある。
『wp_users』テーブルの『display_name』カラムは『text』で作られるが、そのままだと
『Error was no such column』という『型が違うよエラー』が発生する。
『varchar(250)』が推奨の様子。
他にもwordpress本体の関係かもと思ったら『データベース構造 - WordPress Codex 日本語版』を確認することをオススメする。
コメント