/** * Runs before the schema is upgraded. * * @since 2.9.0 * * @global int $wp_current_db_version * @global wpdb $wpdb */ function pre_schema_upgrade() { global $wp_current_db_version, $wpdb; // Unused in Project Nami. // To be removed. // Multisite schema upgrades. if ($wp_current_db_version < 25448 && is_multisite() && wp_should_upgrade_global_tables()) { // Upgrade verions prior to 3.7 if ($wp_current_db_version < 25179) { // New primary key for signups. $wpdb->query("ALTER TABLE {$wpdb->signups} ADD signup_id INT NOT NULL IDENTITY(1,1)"); } } if ($wp_current_db_version < 30133) { // dbDelta() can recreate but can't drop the index. $wpdb->query("ALTER TABLE {$wpdb->terms} DROP INDEX slug"); } }
/** * Runs before the schema is upgraded. * * @since 2.9.0 * * @global int $wp_current_db_version * @global wpdb $wpdb */ function pre_schema_upgrade() { global $wp_current_db_version, $wpdb; // Upgrade versions prior to 2.9 if ($wp_current_db_version < 11557) { // Delete duplicate options. Keep the option with the highest option_id. $wpdb->query("DELETE o1 FROM {$wpdb->options} AS o1 JOIN {$wpdb->options} AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id"); // Drop the old primary key and add the new. $wpdb->query("ALTER TABLE {$wpdb->options} DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)"); // Drop the old option_name index. dbDelta() doesn't do the drop. $wpdb->query("ALTER TABLE {$wpdb->options} DROP INDEX option_name"); } // Multisite schema upgrades. if ($wp_current_db_version < 25448 && is_multisite() && wp_should_upgrade_global_tables()) { // Upgrade verions prior to 3.7 if ($wp_current_db_version < 25179) { // New primary key for signups. $wpdb->query("ALTER TABLE {$wpdb->signups} ADD signup_id BIGINT(20) NOT NULL AUTO_INCREMENT PRIMARY KEY FIRST"); $wpdb->query("ALTER TABLE {$wpdb->signups} DROP INDEX domain"); } if ($wp_current_db_version < 25448) { // Convert archived from enum to tinyint. $wpdb->query("ALTER TABLE {$wpdb->blogs} CHANGE COLUMN archived archived varchar(1) NOT NULL default '0'"); $wpdb->query("ALTER TABLE {$wpdb->blogs} CHANGE COLUMN archived archived tinyint(2) NOT NULL default 0"); } } // Upgrade versions prior to 4.2. if ($wp_current_db_version < 31351) { if (!is_multisite() && wp_should_upgrade_global_tables()) { $wpdb->query("ALTER TABLE {$wpdb->usermeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); } $wpdb->query("ALTER TABLE {$wpdb->terms} DROP INDEX slug, ADD INDEX slug(slug(191))"); $wpdb->query("ALTER TABLE {$wpdb->terms} DROP INDEX name, ADD INDEX name(name(191))"); $wpdb->query("ALTER TABLE {$wpdb->commentmeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); $wpdb->query("ALTER TABLE {$wpdb->postmeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); $wpdb->query("ALTER TABLE {$wpdb->posts} DROP INDEX post_name, ADD INDEX post_name(post_name(191))"); } }
/** * Runs before the schema is upgraded. * * @since 2.9.0 * * @global int $wp_current_db_version * @global wpdb $wpdb WordPress database abstraction object. */ function pre_schema_upgrade() { global $wp_current_db_version, $wpdb; // Upgrade versions prior to 2.9 if ($wp_current_db_version < 11557) { // Delete duplicate options. Keep the option with the highest option_id. $wpdb->query("DELETE o1 FROM {$wpdb->options} AS o1 JOIN {$wpdb->options} AS o2 USING (`option_name`) WHERE o2.option_id > o1.option_id"); // Drop the old primary key and add the new. $wpdb->query("ALTER TABLE {$wpdb->options} DROP PRIMARY KEY, ADD PRIMARY KEY(option_id)"); // Drop the old option_name index. dbDelta() doesn't do the drop. $wpdb->query("ALTER TABLE {$wpdb->options} DROP INDEX option_name"); } // Upgrade versions prior to 4.2. if ($wp_current_db_version < 31351) { if (wp_should_upgrade_global_tables()) { $wpdb->query("ALTER TABLE {$wpdb->usermeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); } $wpdb->query("ALTER TABLE {$wpdb->terms} DROP INDEX slug, ADD INDEX slug(slug(191))"); $wpdb->query("ALTER TABLE {$wpdb->terms} DROP INDEX name, ADD INDEX name(name(191))"); $wpdb->query("ALTER TABLE {$wpdb->commentmeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); $wpdb->query("ALTER TABLE {$wpdb->postmeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); $wpdb->query("ALTER TABLE {$wpdb->posts} DROP INDEX post_name, ADD INDEX post_name(post_name(191))"); } // Upgrade versions prior to 4.4. if ($wp_current_db_version < 34978) { // If compatible termmeta table is found, use it, but enforce a proper index and update collation. if ($wpdb->get_var("SHOW TABLES LIKE '{$wpdb->termmeta}'") && $wpdb->get_results("SHOW INDEX FROM {$wpdb->termmeta} WHERE Column_name = 'meta_key'")) { $wpdb->query("ALTER TABLE {$wpdb->termmeta} DROP INDEX meta_key, ADD INDEX meta_key(meta_key(191))"); maybe_convert_table_to_utf8mb4($wpdb->termmeta); } } }