うちのWordpressはsqliteを使っているが、WordPressが4.4に上がってからどうも調子が悪いので、サーバーログを見てみると案の定エラーが多発している。一番大きかったのは、Error was no such table: wp_termmetaのエラー
とwp_termmetaがない!っのエラー。たぶんデータベース変換時にエラーがかかりこのテーブルを作成できなかったのだろう。WordPress › Support » WordPress 4.4 fatal errorなどをみると、wp_taxonomymetaを変換して作れとなっているが、sqliteではカラム名のリネームができないので、ちょっとやっかい・・・とりあえず無理やりSQLで新規に作って様子をみてみる(こればっかし)。とりあえずエラーログは出てないようだ・・
1 2 3 4 5 6 |
CREATE TABLE wp_termmeta ( meta_id INTEGER PRIMARY KEY AUTOINCREMENT, term_id INTEGER NOT NULL default '0', meta_key varchar(255) default NULL, meta_value text ) ; |
ちなみにオリジナルはscheme.phpにある
1 2 3 4 5 6 7 8 9 |
$blog_tables = "CREATE TABLE $wpdb->termmeta ( meta_id bigint(20) unsigned NOT NULL auto_increment, term_id bigint(20) unsigned NOT NULL default '0', meta_key varchar(255) default NULL, meta_value longtext, PRIMARY KEY (meta_id), KEY term_id (term_id), KEY meta_key (meta_key($max_index_length)) ) $charset_collate; |
(一部phpが入っているが、気にしない・・)
どうもこのmysql方式のsql文はpdo_sqlite_driver*.phpなどでsqlite形式にrewriteされるようだが、うまく変換できないsqlがあるようだ。以前、無理やり本体のsql文を直したがあれもrewriteされたあとはどうなっているやら・・・