WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Given vX and vX+1, how do I find the difference between each versions database schema?

share|improve this question
up vote 4 down vote accepted

In wp-admin/includes/upgrade.php are version specific functions for database upgrades. They include changes for the schema. Examples for 3.4.0 and 3.5.0:

/**
 * Execute changes made in WordPress 3.4.
 *
 * @since 3.4.0
 */
function upgrade_340() {
    global $wp_current_db_version, $wpdb;

    if ( $wp_current_db_version < 19798 ) {
        $wpdb->hide_errors();
        $wpdb->query( "ALTER TABLE $wpdb->options DROP COLUMN blog_id" );
        $wpdb->show_errors();
    }

    if ( $wp_current_db_version < 19799 ) {
        $wpdb->hide_errors();
        $wpdb->query("ALTER TABLE $wpdb->comments DROP INDEX comment_approved");
        $wpdb->show_errors();
    }

    if ( $wp_current_db_version < 20022 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) {
        $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key = 'themes_last_view'" );
    }

    if ( $wp_current_db_version < 20080 ) {
        if ( 'yes' == $wpdb->get_var( "SELECT autoload FROM $wpdb->options WHERE option_name = 'uninstall_plugins'" ) ) {
            $uninstall_plugins = get_option( 'uninstall_plugins' );
            delete_option( 'uninstall_plugins' );
            add_option( 'uninstall_plugins', $uninstall_plugins, null, 'no' );
        }
    }
}

/**
 * Execute changes made in WordPress 3.5.
 *
 * @since 3.5.0
 */
function upgrade_350() {
    global $wp_current_db_version, $wpdb;

    if ( $wp_current_db_version < 22006 && $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) )
        update_option( 'link_manager_enabled', 1 ); // Previously set to 0 by populate_options()

    if ( $wp_current_db_version < 21811 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) {
        $meta_keys = array();
        foreach ( array_merge( get_post_types(), get_taxonomies() ) as $name ) {
            if ( false !== strpos( $name, '-' ) )
            $meta_keys[] = 'edit_' . str_replace( '-', '_', $name ) . '_per_page';
        }
        if ( $meta_keys ) {
            $meta_keys = implode( "', '", $meta_keys );
            $wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('$meta_keys')" );
        }
    }

    if ( $wp_current_db_version < 22422 && $term = get_term_by( 'slug', 'post-format-standard', 'post_format' ) )
        wp_delete_term( $term->term_id, 'post_format' );
}

The Codex has some additional information on the Database description page.

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.