<?php $SPACES_TABLE = ks_get_table_name("spaces"); global $ks_db_version; $ks_db_version = '0.1'; function ks_get_table_name($table) { global $wpdb; return $wpdb->prefix . "ks_" . $table; } register_activation_hook(__FILE__, 'ks_install'); function ks_install() { global $wpdb; global $ks_db_version; $installed_ver = get_option("ks_db_version"); if ($installed_ver == $ks_db_version) { return; } $charset_collate = $wpdb->get_charset_collate(); require_once(__DIR__ . '/../../../../wp-admin/includes/upgrade.php'); global $SPACES_TABLE; $sql = "CREATE TABLE $SPACES_TABLE ( space_id int(11) NOT NULL AUTO_INCREMENT, name text NOT NULL, graph text NOT NULL, PRIMARY KEY (space_id) ) $charset_collate;"; dbDelta($sql); //! Has some weird restrictions for the SQL Query: https://codex.wordpress.org/Creating_Tables_with_Plugins add_option('ks_db_version', $ks_db_version); } // Handling upgrade function ks_update_db_check() { global $ks_db_version; if (get_site_option('ks_db_version') != $ks_db_version) { ks_install(); } } add_action('plugins_loaded', 'ks_update_db_check');