WordPress.org

Make WordPress Core

Ticket #12028: 12028.2.diff

File 12028.2.diff, 11.2 KB (added by ryan, 3 years ago)
  • wp-includes/ms-functions.php

     
    11721172        $url = get_blogaddress_by_id($blog_id); 
    11731173 
    11741174        // Set everything up 
    1175         make_db_current_silent(); 
     1175        make_db_current_silent( 'blog' ); 
    11761176        populate_options(); 
    11771177        populate_roles(); 
    11781178        $wp_roles->_init(); 
  • wp-admin/includes/upgrade.php

     
    14241424 * @param unknown_type $execute 
    14251425 * @return unknown 
    14261426 */ 
    1427 function dbDelta($queries, $execute = true) { 
     1427function dbDelta( $queries = '', $execute = true ) { 
    14281428        global $wpdb; 
    14291429 
     1430        if ( empty( $queries ) ) 
     1431                $queries = wp_get_db_schema( 'all' ); 
     1432        elseif ( 'all' == $queries ) 
     1433                $queries = wp_get_db_schema( 'all' ); 
     1434        elseif ( 'blog' == $queries ) 
     1435                $queries = wp_get_db_schema( 'blog' ); 
     1436        elseif ( 'global' == $queries ) 
     1437                $queries = wp_get_db_schema( 'global' ); 
     1438        elseif ( 'ms' == $queries ) 
     1439                $queries = wp_get_db_schema( 'ms' ); 
     1440 
    14301441        // Separate individual queries into an array 
    14311442        if ( !is_array($queries) ) { 
    14321443                $queries = explode( ';', $queries ); 
     
    16311642 * 
    16321643 * @since 1.5.0 
    16331644 */ 
    1634 function make_db_current() { 
    1635         global $wp_queries; 
    1636  
    1637         $alterations = dbDelta($wp_queries); 
     1645function make_db_current( $tables = 'all' ) { 
     1646        $alterations = dbDelta( $tables ); 
    16381647        echo "<ol>\n"; 
    16391648        foreach($alterations as $alteration) echo "<li>$alteration</li>\n"; 
    16401649        echo "</ol>\n"; 
     
    16471656 * 
    16481657 * @since 1.5.0 
    16491658 */ 
    1650 function make_db_current_silent() { 
    1651         global $wp_queries; 
    1652  
    1653         $alterations = dbDelta($wp_queries); 
     1659function make_db_current_silent(  $tables = 'all' ) { 
     1660        $alterations = dbDelta( $tables ); 
    16541661} 
    16551662 
    16561663/** 
     
    19331940} 
    19341941 
    19351942/** 
    1936  * Install Network. 
    1937  * 
    1938  * @since 3.0.0 
    1939  * 
    1940  */ 
    1941 if ( !function_exists( 'install_network' ) ) : 
    1942 function install_network() { 
    1943         global $wpdb, $charset_collate; 
    1944         $ms_queries = " 
    1945 CREATE TABLE $wpdb->users ( 
    1946   ID bigint(20) unsigned NOT NULL auto_increment, 
    1947   user_login varchar(60) NOT NULL default '', 
    1948   user_pass varchar(64) NOT NULL default '', 
    1949   user_nicename varchar(50) NOT NULL default '', 
    1950   user_email varchar(100) NOT NULL default '', 
    1951   user_url varchar(100) NOT NULL default '', 
    1952   user_registered datetime NOT NULL default '0000-00-00 00:00:00', 
    1953   user_activation_key varchar(60) NOT NULL default '', 
    1954   user_status int(11) NOT NULL default '0', 
    1955   display_name varchar(250) NOT NULL default '', 
    1956   spam tinyint(2) NOT NULL default '0', 
    1957   deleted tinyint(2) NOT NULL default '0', 
    1958   PRIMARY KEY  (ID), 
    1959   KEY user_login_key (user_login), 
    1960   KEY user_nicename (user_nicename) 
    1961 ) $charset_collate; 
    1962 CREATE TABLE $wpdb->blogs ( 
    1963   blog_id bigint(20) NOT NULL auto_increment, 
    1964   site_id bigint(20) NOT NULL default '0', 
    1965   domain varchar(200) NOT NULL default '', 
    1966   path varchar(100) NOT NULL default '', 
    1967   registered datetime NOT NULL default '0000-00-00 00:00:00', 
    1968   last_updated datetime NOT NULL default '0000-00-00 00:00:00', 
    1969   public tinyint(2) NOT NULL default '1', 
    1970   archived enum('0','1') NOT NULL default '0', 
    1971   mature tinyint(2) NOT NULL default '0', 
    1972   spam tinyint(2) NOT NULL default '0', 
    1973   deleted tinyint(2) NOT NULL default '0', 
    1974   lang_id int(11) NOT NULL default '0', 
    1975   PRIMARY KEY  (blog_id), 
    1976   KEY domain (domain(50),path(5)), 
    1977   KEY lang_id (lang_id) 
    1978 ) $charset_collate; 
    1979 CREATE TABLE $wpdb->blog_versions ( 
    1980   blog_id bigint(20) NOT NULL default '0', 
    1981   db_version varchar(20) NOT NULL default '', 
    1982   last_updated datetime NOT NULL default '0000-00-00 00:00:00', 
    1983   PRIMARY KEY  (blog_id), 
    1984   KEY db_version (db_version) 
    1985 ) $charset_collate; 
    1986 CREATE TABLE $wpdb->registration_log ( 
    1987   ID bigint(20) NOT NULL auto_increment, 
    1988   email varchar(255) NOT NULL default '', 
    1989   IP varchar(30) NOT NULL default '', 
    1990   blog_id bigint(20) NOT NULL default '0', 
    1991   date_registered datetime NOT NULL default '0000-00-00 00:00:00', 
    1992   PRIMARY KEY  (ID), 
    1993   KEY IP (IP) 
    1994 ) $charset_collate; 
    1995 CREATE TABLE $wpdb->site ( 
    1996   id bigint(20) NOT NULL auto_increment, 
    1997   domain varchar(200) NOT NULL default '', 
    1998   path varchar(100) NOT NULL default '', 
    1999   PRIMARY KEY  (id), 
    2000   KEY domain (domain,path) 
    2001 ) $charset_collate; 
    2002 CREATE TABLE $wpdb->sitemeta ( 
    2003   meta_id bigint(20) NOT NULL auto_increment, 
    2004   site_id bigint(20) NOT NULL default '0', 
    2005   meta_key varchar(255) default NULL, 
    2006   meta_value longtext, 
    2007   PRIMARY KEY  (meta_id), 
    2008   KEY meta_key (meta_key), 
    2009   KEY site_id (site_id) 
    2010 ) $charset_collate; 
    2011 CREATE TABLE $wpdb->signups ( 
    2012   domain varchar(200) NOT NULL default '', 
    2013   path varchar(100) NOT NULL default '', 
    2014   title longtext NOT NULL, 
    2015   user_login varchar(60) NOT NULL default '', 
    2016   user_email varchar(100) NOT NULL default '', 
    2017   registered datetime NOT NULL default '0000-00-00 00:00:00', 
    2018   activated datetime NOT NULL default '0000-00-00 00:00:00', 
    2019   active tinyint(1) NOT NULL default '0', 
    2020   activation_key varchar(50) NOT NULL default '', 
    2021   meta longtext, 
    2022   KEY activation_key (activation_key), 
    2023   KEY domain (domain) 
    2024 ) $charset_collate; 
    2025 "; 
    2026 // now create tables 
    2027         dbDelta( $ms_queries ); 
    2028 } 
    2029 endif; 
    2030  
    2031 /** 
    20321943 * Install global terms. 
    20331944 * 
    20341945 * @since 3.0.0 
  • wp-admin/includes/schema.php

     
    88 * @subpackage Administration 
    99 */ 
    1010 
     11// Declare these as global in case schema.php is included from a function. 
     12global $wpdb, $wp_queries; 
     13 
    1114/** 
    12  * The database character collate. 
    13  * @var string 
    14  * @global string 
    15  * @name $charset_collate 
     15 * Retrieve the SQL for creating database tables. 
     16 * 
     17 * @since 3.3.0 
     18 * 
     19 * @param string $scope Optional. The tables for which to retrieve SQL. Can be all, global, ms, or blog tables. Defaults to all. 
     20 * @param int $blog_id Optional. The blog ID for which to retrieve SQL.  Default is the current blog ID. 
     21 * @return string The SQL needed to create the requested tables. 
    1622 */ 
    17 $charset_collate = ''; 
     23function wp_get_db_schema( $scope = 'all', $blog_id = null ) { 
     24        global $wpdb; 
    1825 
    19 // Declare these as global in case schema.php is included from a function. 
    20 global $wpdb, $wp_queries; 
     26        if ( ! empty($wpdb->charset) ) 
     27                $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; 
     28        if ( ! empty($wpdb->collate) ) 
     29                $charset_collate .= " COLLATE $wpdb->collate"; 
    2130 
    22 if ( ! empty($wpdb->charset) ) 
    23         $charset_collate = "DEFAULT CHARACTER SET $wpdb->charset"; 
    24 if ( ! empty($wpdb->collate) ) 
    25         $charset_collate .= " COLLATE $wpdb->collate"; 
     31        if ( $blog_id && $blog_id != $wpdb->blogid ) 
     32                $old_blog_id = $wpdb->set_blog_id( $blog_id ); 
    2633 
    27 /** Create WordPress database tables SQL */ 
    28 $wp_queries = "CREATE TABLE $wpdb->terms ( 
     34        $queries = ''; 
     35 
     36        if ( 'all' == $scope || 'blog' == $scope ) { 
     37                $queries .= "CREATE TABLE $wpdb->terms ( 
    2938 term_id bigint(20) unsigned NOT NULL auto_increment, 
    3039 name varchar(200) NOT NULL default '', 
    3140 slug varchar(200) NOT NULL default '', 
     
    148157  KEY type_status_date (post_type,post_status,post_date,ID), 
    149158  KEY post_parent (post_parent), 
    150159  KEY post_author (post_author) 
    151 ) $charset_collate; 
    152 CREATE TABLE $wpdb->users ( 
     160) $charset_collate;\n"; 
     161        } 
     162 
     163        if ( 'all' == $scope || 'blog' == $scope ) { 
     164                $queries .= "CREATE TABLE $wpdb->users ( 
    153165  ID bigint(20) unsigned NOT NULL auto_increment, 
    154166  user_login varchar(60) NOT NULL default '', 
    155167  user_pass varchar(64) NOT NULL default '', 
     
    172184  PRIMARY KEY  (umeta_id), 
    173185  KEY user_id (user_id), 
    174186  KEY meta_key (meta_key) 
     187) $charset_collate;\n"; 
     188        } 
     189 
     190        if ( 'ms' == $scope ) { 
     191                $queries .= "CREATE TABLE $wpdb->users ( 
     192  ID bigint(20) unsigned NOT NULL auto_increment, 
     193  user_login varchar(60) NOT NULL default '', 
     194  user_pass varchar(64) NOT NULL default '', 
     195  user_nicename varchar(50) NOT NULL default '', 
     196  user_email varchar(100) NOT NULL default '', 
     197  user_url varchar(100) NOT NULL default '', 
     198  user_registered datetime NOT NULL default '0000-00-00 00:00:00', 
     199  user_activation_key varchar(60) NOT NULL default '', 
     200  user_status int(11) NOT NULL default '0', 
     201  display_name varchar(250) NOT NULL default '', 
     202  spam tinyint(2) NOT NULL default '0', 
     203  deleted tinyint(2) NOT NULL default '0', 
     204  PRIMARY KEY  (ID), 
     205  KEY user_login_key (user_login), 
     206  KEY user_nicename (user_nicename) 
     207) $charset_collate; 
     208CREATE TABLE $wpdb->blogs ( 
     209  blog_id bigint(20) NOT NULL auto_increment, 
     210  site_id bigint(20) NOT NULL default '0', 
     211  domain varchar(200) NOT NULL default '', 
     212  path varchar(100) NOT NULL default '', 
     213  registered datetime NOT NULL default '0000-00-00 00:00:00', 
     214  last_updated datetime NOT NULL default '0000-00-00 00:00:00', 
     215  public tinyint(2) NOT NULL default '1', 
     216  archived enum('0','1') NOT NULL default '0', 
     217  mature tinyint(2) NOT NULL default '0', 
     218  spam tinyint(2) NOT NULL default '0', 
     219  deleted tinyint(2) NOT NULL default '0', 
     220  lang_id int(11) NOT NULL default '0', 
     221  PRIMARY KEY  (blog_id), 
     222  KEY domain (domain(50),path(5)), 
     223  KEY lang_id (lang_id) 
     224) $charset_collate; 
     225CREATE TABLE $wpdb->blog_versions ( 
     226  blog_id bigint(20) NOT NULL default '0', 
     227  db_version varchar(20) NOT NULL default '', 
     228  last_updated datetime NOT NULL default '0000-00-00 00:00:00', 
     229  PRIMARY KEY  (blog_id), 
     230  KEY db_version (db_version) 
     231) $charset_collate; 
     232CREATE TABLE $wpdb->registration_log ( 
     233  ID bigint(20) NOT NULL auto_increment, 
     234  email varchar(255) NOT NULL default '', 
     235  IP varchar(30) NOT NULL default '', 
     236  blog_id bigint(20) NOT NULL default '0', 
     237  date_registered datetime NOT NULL default '0000-00-00 00:00:00', 
     238  PRIMARY KEY  (ID), 
     239  KEY IP (IP) 
     240) $charset_collate; 
     241CREATE TABLE $wpdb->site ( 
     242  id bigint(20) NOT NULL auto_increment, 
     243  domain varchar(200) NOT NULL default '', 
     244  path varchar(100) NOT NULL default '', 
     245  PRIMARY KEY  (id), 
     246  KEY domain (domain,path) 
     247) $charset_collate; 
     248CREATE TABLE $wpdb->sitemeta ( 
     249  meta_id bigint(20) NOT NULL auto_increment, 
     250  site_id bigint(20) NOT NULL default '0', 
     251  meta_key varchar(255) default NULL, 
     252  meta_value longtext, 
     253  PRIMARY KEY  (meta_id), 
     254  KEY meta_key (meta_key), 
     255  KEY site_id (site_id) 
     256) $charset_collate; 
     257CREATE TABLE $wpdb->signups ( 
     258  domain varchar(200) NOT NULL default '', 
     259  path varchar(100) NOT NULL default '', 
     260  title longtext NOT NULL, 
     261  user_login varchar(60) NOT NULL default '', 
     262  user_email varchar(100) NOT NULL default '', 
     263  registered datetime NOT NULL default '0000-00-00 00:00:00', 
     264  activated datetime NOT NULL default '0000-00-00 00:00:00', 
     265  active tinyint(1) NOT NULL default '0', 
     266  activation_key varchar(50) NOT NULL default '', 
     267  meta longtext, 
     268  KEY activation_key (activation_key), 
     269  KEY domain (domain) 
    175270) $charset_collate;"; 
     271        } 
    176272 
     273        if ( isset( $old_blog_id ) ) 
     274                $wpdb->set_blog_id( $old_blog_id ); 
     275 
     276        return $queries; 
     277} 
     278 
     279// Populate for back compat. 
     280$wp_queries = wp_get_db_schema( 'all' ); 
     281 
    177282/** 
    178283 * Create WordPress options and set the default values. 
    179284 * 
     
    624729} 
    625730 
    626731/** 
     732 * Install Network. 
     733 * 
     734 * @since 3.0.0 
     735 * 
     736 */ 
     737if ( !function_exists( 'install_network' ) ) : 
     738function install_network() { 
     739        dbDelta( wp_get_db_schema( 'ms' ) ); 
     740} 
     741endif; 
     742 
     743/** 
    627744 * populate network settings 
    628745 * 
    629746 * @since 3.0.0