在哪里可以找到不同WordPress版本之间的数据库更改?

时间:2013-03-22 作者:Tom J Nowell

给定vX和vX+1,如何找出每个版本数据库模式之间的差异?

1 个回复
最合适的回答,由SO网友:fuxia 整理而成

在里面wp-admin/includes/upgrade.php 是用于数据库升级的特定于版本的功能。它们包括对架构的更改。3.4.0和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\' );
}
法典中有一些关于Database description

结束

相关推荐

Add Column to Term Database

目前,术语数据库有四列。term_id name slug term_group. 我想添加另一个名为menu_order.我该怎么做?我想要的结果是能够订购我的自定义条款。如果有人知道更好的方法,请告诉我。到目前为止,我已经有了设置输入框的代码。我只是需要帮助,试着用get_terms() 作用add_action ( \'section_edit_form_fields\', \'create_section_menu_order\'); function create_section_men