2016-11-26 66 views
0

假設插件已被應用商店中的人使用,是否有一種簡單的方法來強制數據庫更新,同時保留用戶擁有的數據?不得不擦除數據庫並刪除所有記錄並不是一個理想的情況。更新WordPress插件數據庫

記住的具體操作是爲現有記錄添加一個具有已知值的列。

任何幫助表示讚賞!

+1

是的,更新插件版本並在新代碼中添加新列。 – Erevald

+0

你會在哪裏添加添加新列的代碼?我之前曾在activate-plugin類中實例化數據庫,用於檢查表是否存在,並據此採取行動。 – mdobrenko

+0

你會在這裏找到答案︰https://wordpress.stackexchange.com/questions/67345/how-to-implement-wordpress-plugin-update-that-modifies-the-database – Cedric

回答

1

有很多方法可以做到這一點。一種方法是比較插件版本並在那裏進行遷移。一旦完成更新版本,它不會重複。

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 
}