MoyaSystem

もやしです。

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関数ってどんな役割なんだろう?名前もわかりにくいし。