WordPressのプラグインでDBをアップデートする方法
テーブルを作成する
WordPress Codex でも書かれているので引用しときましょう。
dbDelta関数を使います。
Creating Tables with Plugins « WordPress Codex
global $wpdb; $sql = "CREATE TABLE $table_name ( id mediumint(9) NOT NULL AUTO_INCREMENT, time datetime DEFAULT '0000-00-00 00:00:00' NOT NULL, name tinytext NOT NULL, text text NOT NULL, url VARCHAR(55) DEFAULT '' NOT NULL, UNIQUE KEY id (id) );"; require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); dbDelta( $sql );
テーブル定義を修正する
要はALTER文ですね。カラムを追加したり削除したり。
この場合、dbDeltaは使えません。
グローバルのwpdbオブジェクトが持つquery関数を呼んでやります。
global $wpdb; $sql = "ALTER TABLE `table_hoge` ADD `insert_timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP FIRST;"; $wpdb->query($sql);
テーブル定義修正の処理で詰まったので書き留めておきました。
dbDelta関数ってどんな役割なんだろう?名前もわかりにくいし。