pre_schema_upgrade() – Runs before the schema is upgraded.

You appear to be a bot. Output may be restricted

Description

Runs before the schema is upgraded.

Usage

pre_schema_upgrade();

Parameters

Returns

void

Source

File name: wordpress/wp-admin/includes/upgrade.php
Lines:

1 to 53 of 53
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 versions 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))" );
  }

  // 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 );
    }
  }
}
 

 View on GitHub View on Trac