假设app-store上的人已经在使用插件,是否有一种简单的方法可以强制数据库更新,同时保留用户拥有的数据?必须擦除数据库并删除所有记录并不是一个理想的场景。
具体操作是添加一个具有现有记录已知值的列。
任何帮助表示赞赏!
答案 0 :(得分:2)
有很多方法可以做到这一点。一种方法是比较插件版本并在那里进行迁移。一旦完成更新版本,就不会重复。
function plugin_update() {
global $plugin_version;
if ( get_site_option( 'plugin_version' ) != $plugin_version )
plugin_updates();
}
add_action( 'plugins_loaded', 'plugin_update' );
function plugin_updates() {
global $wpdb, $plugin_version;
$table_name = $wpdb->prefix . 'thetable';
$wpdb->query(
"ALTER TABLE $table_name
ADD COLUMN `count` SMALLINT(6) NOT NULL
");
// update option
}