http://www.mediawiki.org/wiki/Special:Code/MediaWiki/71136

Revision: 71136
Author:   demon
Date:     2010-08-15 18:13:23 +0000 (Sun, 15 Aug 2010)

Log Message:
-----------
Some general update refactoring:
* Drop version keys. Don't really serve a purpose
* Don't use updatelog to determine if an update should be run, let the update 
check itself (this was the old behavior)
* Still record updates as a single timestamped array (could be useful)

Modified Paths:
--------------
    trunk/phase3/includes/installer/DatabaseUpdater.php
    trunk/phase3/includes/installer/MysqlUpdater.php
    trunk/phase3/includes/installer/SqliteUpdater.php
    trunk/phase3/maintenance/updaters.inc

Modified: trunk/phase3/includes/installer/DatabaseUpdater.php
===================================================================
--- trunk/phase3/includes/installer/DatabaseUpdater.php 2010-08-15 17:27:58 UTC 
(rev 71135)
+++ trunk/phase3/includes/installer/DatabaseUpdater.php 2010-08-15 18:13:23 UTC 
(rev 71136)
@@ -18,73 +18,44 @@
 
        protected $db;
 
-       protected function __construct( $db ) {
+       protected $shared = false;
+
+       protected function __construct( $db, $shared ) {
                $this->db = $db;
+               $this->shared = $shared;
        }
 
-       public static function newForDB( $db ) {
+       public static function newForDB( $db, $shared ) {
                switch( $db->getType() ) {
                        case 'mysql':
-                               return new MysqlUpdater( $db );
+                               return new MysqlUpdater( $db, $shared );
                        case 'sqlite':
-                               return new SqliteUpdater( $db );
+                               return new SqliteUpdater( $db, $shared );
                        case 'oracle':
-                               return new OracleUpdater( $db );
+                               return new OracleUpdater( $db, $shared );
                        default:
                                throw new MWException( __METHOD__ . ' called 
for unsupported $wgDBtype' );
                }
        }
 
-       public function doUpdates() {
-               global $IP;
+       public function doUpdates( $doUser = false ) {
+               global $IP, $wgVersion;
                require_once( "$IP/maintenance/updaters.inc" );
-               $this->loadUpdates();
-               foreach ( $this->updates as $version => $updates ) {
-                       foreach( $updates as $params ) {
-                               $func = array_shift( $params );
-                               call_user_func_array( $func, $params );
-                               flush();
-                       }
-                       // some updates don't get recorded :(
-                       if( $version !== 'always' ) {
-                               $this->setAppliedUpdates( $version, $updates );
-                       }
+               $this->updates = array_merge( $this->getCoreUpdateList(),
+                       $this->getOldGlobalUpdates( $doUser ) );
+               foreach ( $this->updates as $params ) {
+                       $func = array_shift( $params );
+                       call_user_func_array( $func, $params );
+                       flush();
                }
+               $this->setAppliedUpdates( $wgVersion, $this->updates );
        }
 
-       protected function loadUpdates() {
-               // If the updatelog table hasn't been upgraded, we can't use 
the new
-               // style of recording our steps. Run all to be safe
-               if( !$this->canUseNewUpdatelog() ) {
-                       $this->updates = $this->getCoreUpdateList();
-               } else {
-                       foreach( $this->getCoreUpdateList() as $version => 
$updates ) {
-                               $appliedUpdates = $this->getAppliedUpdates( 
$version );
-                               if( !$appliedUpdates || $appliedUpdates != 
$updates ) {
-                                       $this->updates[ $version ] = $updates;
-                               }
-                       }
-               }
-               $this->getOldGlobalUpdates();
-       }
-
-       protected function getAppliedUpdates( $version ) {
-               $key = "updatelist-$version";
-               $val = $this->db->selectField( 'updatelog', 'ul_value',
-                       array( 'ul_key' => $key ), __METHOD__ );
-               if( !$val ) {
-                       return null;
-               } else {
-                       return unserialize( $val );
-               }
-       }
-
        protected function setAppliedUpdates( $version, $updates = array() ) {
                if( !$this->canUseNewUpdatelog() ) {
                        return;
                }
-               $key = "updatelist-$version";
-               $this->db->delete( 'updatelog', array( 'ul_key' => $key ), 
__METHOD__ );
+               $key = "updatelist-$version-" . time();
                $this->db->insert( 'updatelog',
                        array( 'ul_key' => $key, 'ul_value' => serialize( 
$updates ) ),
                         __METHOD__ );
@@ -111,25 +82,31 @@
         * version these like we do with our core updates, so they have to go
         * in 'always'
         */
-       private function getOldGlobalUpdates() {
+       private function getOldGlobalUpdates( $douser ) {
                global $wgUpdates, $wgExtNewFields, $wgExtNewTables,
-                       $wgExtModifiedFields, $wgExtNewIndexes;
+                       $wgExtModifiedFields, $wgExtNewIndexes, $wgSharedDB, 
$wgSharedTables;
 
+               $doUser = $this->shared ?
+                       $wgSharedDB && in_array( 'user', $wgSharedTables ) :
+                       !$wgSharedDB || !in_array( 'user', $wgSharedTables );
+
+               $updates = array();
+
                if( isset( $wgUpdates[ $this->db->getType() ] ) ) {
                        foreach( $wgUpdates[ $this->db->getType() ] as $upd ) {
-                               $this->updates['always'][] = $upd;
+                               $updates[] = $upd;
                        }
                }
 
                foreach ( $wgExtNewTables as $tableRecord ) {
-                       $this->updates['always'][] = array(
+                       $updates[] = array(
                                'add_table', $tableRecord[0], $tableRecord[1], 
true
                        );
                }
 
                foreach ( $wgExtNewFields as $fieldRecord ) {
                        if ( $fieldRecord[0] != 'user' || $doUser ) {
-                               $this->updates['always'][] = array(
+                               $updates[] = array(
                                        'add_field', $fieldRecord[0], 
$fieldRecord[1],
                                                $fieldRecord[2], true
                                );
@@ -137,18 +114,20 @@
                }
 
                foreach ( $wgExtNewIndexes as $fieldRecord ) {
-                       $this->updates['always'][] = array(
+                       $updates[] = array(
                                'add_index', $fieldRecord[0], $fieldRecord[1],
                                        $fieldRecord[2], true
                        );
                }
 
                foreach ( $wgExtModifiedFields as $fieldRecord ) {
-                       $this->updates['always'][] = array(
+                       $updates[] = array(
                                'modify_field', $fieldRecord[0], 
$fieldRecord[1],
                                        $fieldRecord[2], true
                        );
                }
+
+               return $updates;
        }
 
        /**

Modified: trunk/phase3/includes/installer/MysqlUpdater.php
===================================================================
--- trunk/phase3/includes/installer/MysqlUpdater.php    2010-08-15 17:27:58 UTC 
(rev 71135)
+++ trunk/phase3/includes/installer/MysqlUpdater.php    2010-08-15 18:13:23 UTC 
(rev 71136)
@@ -10,157 +10,156 @@
        
        protected function getCoreUpdateList() {
                return array(
-                       '1.2' => array(
-                               array( 'add_field', 'ipblocks',      'ipb_id',  
         'patch-ipblocks.sql' ),
-                               array( 'add_field', 'ipblocks',      
'ipb_expiry',       'patch-ipb_expiry.sql' ),
-                               array( 'do_interwiki_update' ),
-                               array( 'do_index_update' ),
-                               array( 'add_table', 'hitcounter',               
         'patch-hitcounter.sql' ),
-                               array( 'add_field', 'recentchanges', 'rc_type', 
         'patch-rc_type.sql' ),
-                       ),
-                       '1.3' => array(
-                               array( 'add_field', 'user',          
'user_real_name',   'patch-user-realname.sql' ),
-                               array( 'add_table', 'querycache',               
         'patch-querycache.sql' ),
-                               array( 'add_table', 'objectcache',              
         'patch-objectcache.sql' ),
-                               array( 'add_table', 'categorylinks',            
         'patch-categorylinks.sql' ),
-                               array( 'do_old_links_update' ),
-                               array( 'fix_ancient_imagelinks' ),
-                               array( 'add_field', 'recentchanges', 'rc_ip',   
         'patch-rc_ip.sql' ),
-                       ),
-                       '1.4' => array(
-                               array( 'do_image_name_unique_update' ),
-                               array( 'add_field', 'recentchanges', 'rc_id',   
         'patch-rc_id.sql' ),
-                               array( 'add_field', 'recentchanges', 
'rc_patrolled',     'patch-rc-patrol.sql' ),
-                               array( 'add_table', 'logging',                  
         'patch-logging.sql' ),
-                               array( 'add_field', 'user',          
'user_token',       'patch-user_token.sql' ),
-                               array( 'do_watchlist_update' ),
-                               array( 'do_user_update' ),
-                       ),
-                       '1.5' => array(
-                               array( 'do_schema_restructuring' ),
-                               array( 'add_field', 'logging',       
'log_params',       'patch-log_params.sql' ),
-                               array( 'check_bin', 'logging',       
'log_title',        'patch-logging-title.sql', ),
-                               array( 'add_field', 'archive',       
'ar_rev_id',        'patch-archive-rev_id.sql' ),
-                               array( 'add_field', 'page',          
'page_len',         'patch-page_len.sql' ),
-                               array( 'do_inverse_timestamp' ),
-                               array( 'do_text_id' ),
-                               array( 'add_field', 'revision',      
'rev_deleted',      'patch-rev_deleted.sql' ),
-                               array( 'add_field', 'image',         
'img_width',        'patch-img_width.sql' ),
-                               array( 'add_field', 'image',         
'img_metadata',     'patch-img_metadata.sql' ),
-                               array( 'add_field', 'user',          
'user_email_token', 'patch-user_email_token.sql' ),
-                               array( 'add_field', 'archive',       
'ar_text_id',       'patch-archive-text_id.sql' ),
-                               array( 'do_namespace_size' ),
-                               array( 'add_field', 'image',         
'img_media_type',   'patch-img_media_type.sql' ),
-                               array( 'do_pagelinks_update' ),
-                               array( 'do_drop_img_type' ),
-                               array( 'do_user_unique_update' ),
-                               array( 'do_user_groups_update' ),
-                               array( 'add_field', 'site_stats',    
'ss_total_pages',   'patch-ss_total_articles.sql' ),
-                               array( 'add_table', 'user_newtalk',             
         'patch-usernewtalk2.sql' ),
-                               array( 'add_table', 'transcache',               
         'patch-transcache.sql' ),
-                               array( 'add_field', 'interwiki',     
'iw_trans',         'patch-interwiki-trans.sql' ),
-                               array( 'add_table', 'trackbacks',               
         'patch-trackbacks.sql' ),
-                       ),
-                       '1.6' => array(
-                               array( 'do_watchlist_null' ),
-                               array( 'do_logging_timestamp_index' ),
-                               array( 'add_field', 'ipblocks',        
'ipb_range_start',  'patch-ipb_range_start.sql' ),
-                               array( 'do_page_random_update' ),
-                               array( 'add_field', 'user',            
'user_registration', 'patch-user_registration.sql' ),
-                               array( 'do_templatelinks_update' ),
-                               array( 'add_table', 'externallinks',            
           'patch-externallinks.sql' ),
-                               array( 'add_table', 'job',                      
           'patch-job.sql' ),
-                               array( 'add_field', 'site_stats',      
'ss_images',        'patch-ss_images.sql' ),
-                               array( 'add_table', 'langlinks',                
           'patch-langlinks.sql' ),
-                               array( 'add_table', 'querycache_info',          
           'patch-querycacheinfo.sql' ),
-                               array( 'add_table', 'filearchive',              
           'patch-filearchive.sql' ),
-                               array( 'add_field', 'ipblocks',        
'ipb_anon_only',    'patch-ipb_anon_only.sql' ),
-                               array( 'do_rc_indices_update' ),
-                       ),
-                       '1.9' => array(
-                               array( 'add_field', 'user',          
'user_newpass_time', 'patch-user_newpass_time.sql' ),
-                               array( 'add_table', 'redirect',                 
          'patch-redirect.sql' ),
-                               array( 'add_table', 'querycachetwo',            
          'patch-querycachetwo.sql' ),
-                               array( 'add_field', 'ipblocks',      
'ipb_enable_autoblock', 'patch-ipb_optional_autoblock.sql' ),
-                               array( 'do_backlinking_indices_update' ),
-                               array( 'add_field', 'recentchanges', 
'rc_old_len',        'patch-rc_len.sql' ),
-                               array( 'add_field', 'user',          
'user_editcount',    'patch-user_editcount.sql' ),
-                       ),
-                       '1.10' => array(
-                               array( 'do_restrictions_update' ),
-                               array( 'add_field', 'logging',       'log_id',  
         'patch-log_id.sql' ),
-                               array( 'add_field', 'revision',      
'rev_parent_id',    'patch-rev_parent_id.sql' ),
-                               array( 'add_field', 'page_restrictions', 
'pr_id',        'patch-page_restrictions_sortkey.sql' ),
-                               array( 'add_field', 'revision',      'rev_len', 
         'patch-rev_len.sql' ),
-                               array( 'add_field', 'recentchanges', 
'rc_deleted',       'patch-rc_deleted.sql' ),
-                               array( 'add_field', 'logging',       
'log_deleted',      'patch-log_deleted.sql' ),
-                               array( 'add_field', 'archive',       
'ar_deleted',       'patch-ar_deleted.sql' ),
-                               array( 'add_field', 'ipblocks',      
'ipb_deleted',      'patch-ipb_deleted.sql' ),
-                               array( 'add_field', 'filearchive',   
'fa_deleted',       'patch-fa_deleted.sql' ),
-                               array( 'add_field', 'archive',       'ar_len',  
         'patch-ar_len.sql' ),
-                       ),
-                       '1.11' => array(
-                               array( 'add_field', 'ipblocks',      
'ipb_block_email',  'patch-ipb_emailban.sql' ),
-                               array( 'do_categorylinks_indices_update' ),
-                               array( 'add_field', 'oldimage',      
'oi_metadata',      'patch-oi_metadata.sql' ),
-                               array( 'do_archive_user_index' ),
-                               array( 'do_image_user_index' ),
-                               array( 'do_oldimage_user_index' ),
-                               array( 'add_field', 'archive',       
'ar_page_id',       'patch-archive-page_id.sql' ),
-                               array( 'add_field', 'image',         
'img_sha1',         'patch-img_sha1.sql' ),
-                       ),
-                       '1.12' => array(
-                               array( 'add_table', 'protected_titles',         
         'patch-protected_titles.sql' ),
-                       ),
-                       '1.13' => array(
-                               array( 'add_field', 'ipblocks',      
'ipb_by_text',      'patch-ipb_by_text.sql' ),
-                               array( 'add_table', 'page_props',               
         'patch-page_props.sql' ),
-                               array( 'add_table', 'updatelog',                
         'patch-updatelog.sql' ),
-                               array( 'add_table', 'category',                 
         'patch-category.sql' ),
-                               array( 'do_category_population' ),
-                               array( 'add_field', 'archive',       
'ar_parent_id',     'patch-ar_parent_id.sql' ),
-                               array( 'add_field', 'user_newtalk',  
'user_last_timestamp', 'patch-user_last_timestamp.sql' ),
-                               array( 'do_populate_parent_id' ),
-                               array( 'check_bin', 'protected_titles', 
'pt_title',      'patch-pt_title-encoding.sql', ),
-                               array( 'maybe_do_profiling_memory_update' ),
-                               array( 'do_filearchive_indices_update' ),
-                       ),
-                       '1.14' => array(
-                               array( 'add_field', 'site_stats',    
'ss_active_users',  'patch-ss_active_users.sql' ),
-                               array( 'do_active_users_init' ),
-                               array( 'add_field', 'ipblocks',      
'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
-                       ),
-                       '1.15' => array(
-                               array( 'do_unique_pl_tl_il' ),
-                               array( 'add_table', 'change_tag',               
         'patch-change_tag.sql' ),
-                               array( 'add_table', 'tag_summary',              
         'patch-change_tag.sql' ),
-                               array( 'add_table', 'valid_tag',                
         'patch-change_tag.sql' ),
-                       ),
-                       '1.16' => array(
-                               array( 'add_table', 'user_properties',          
         'patch-user_properties.sql' ),
-                               array( 'add_table', 'log_search',               
         'patch-log_search.sql' ),
-                               array( 'do_log_search_population' ),
-                               array( 'add_field', 'logging',       
'log_user_text',    'patch-log_user_text.sql' ),
-                               array( 'add_table', 'l10n_cache',               
         'patch-l10n_cache.sql' ),
-                               array( 'add_table', 'external_user',            
         'patch-external_user.sql' ),
-                               array( 'add_index', 'log_search',    
'ls_field_val',     'patch-log_search-rename-index.sql' ),
-                               array( 'add_index', 'change_tag',    
'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
-                               array( 'add_field', 'redirect',      
'rd_interwiki',     'patch-rd_interwiki.sql' ),
-                               array( 'do_update_transcache_field' ),
-                               array( 'rename_eu_wiki_id' ),
-                               array( 'do_update_mime_minor_field' ),
-                               array( 'do_populate_rev_len' ),
-                       ),
-                       '1.17' => array(
-                               array( 'add_table', 'iwlinks',                  
         'patch-iwlinks.sql' ),
-                               array( 'add_index', 'iwlinks', 
'iwl_prefix_title_from',  'patch-rename-iwl_prefix.sql' ),
-                               array( 'add_field', 'updatelog', 'ul_value',    
          'patch-ul_value.sql' ),
-                               array( 'add_field', 'interwiki',     'iw_api',  
         'patch-iw_api_and_wikiid.sql' ),
-                               array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix',  'patch-kill-iwl_prefix.sql' ),
-                               array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
-                               array( 'add_field', 'categorylinks', 
'cl_collation', 'patch-categorylinks-better-collation.sql' ),
-                               array( 'do_collation_update' ),
-                       ),
+                       // 1.2
+                       array( 'add_field', 'ipblocks',      'ipb_id',          
 'patch-ipblocks.sql' ),
+                       array( 'add_field', 'ipblocks',      'ipb_expiry',      
 'patch-ipb_expiry.sql' ),
+                       array( 'do_interwiki_update' ),
+                       array( 'do_index_update' ),
+                       array( 'add_table', 'hitcounter',                       
 'patch-hitcounter.sql' ),
+                       array( 'add_field', 'recentchanges', 'rc_type',         
 'patch-rc_type.sql' ),
+
+                       // 1.3
+                       array( 'add_field', 'user',          'user_real_name',  
 'patch-user-realname.sql' ),
+                       array( 'add_table', 'querycache',                       
 'patch-querycache.sql' ),
+                       array( 'add_table', 'objectcache',                      
 'patch-objectcache.sql' ),
+                       array( 'add_table', 'categorylinks',                    
 'patch-categorylinks.sql' ),
+                       array( 'do_old_links_update' ),
+                       array( 'fix_ancient_imagelinks' ),
+                       array( 'add_field', 'recentchanges', 'rc_ip',           
 'patch-rc_ip.sql' ),
+
+                       // 1.4
+                       array( 'do_image_name_unique_update' ),
+                       array( 'add_field', 'recentchanges', 'rc_id',           
 'patch-rc_id.sql' ),
+                       array( 'add_field', 'recentchanges', 'rc_patrolled',    
 'patch-rc-patrol.sql' ),
+                       array( 'add_table', 'logging',                          
 'patch-logging.sql' ),
+                       array( 'add_field', 'user',          'user_token',      
 'patch-user_token.sql' ),
+                       array( 'do_watchlist_update' ),
+                       array( 'do_user_update' ),
+
+                       // 1.5
+                       array( 'do_schema_restructuring' ),
+                       array( 'add_field', 'logging',       'log_params',      
 'patch-log_params.sql' ),
+                       array( 'check_bin', 'logging',       'log_title',       
 'patch-logging-title.sql', ),
+                       array( 'add_field', 'archive',       'ar_rev_id',       
 'patch-archive-rev_id.sql' ),
+                       array( 'add_field', 'page',          'page_len',        
 'patch-page_len.sql' ),
+                       array( 'do_inverse_timestamp' ),
+                       array( 'do_text_id' ),
+                       array( 'add_field', 'revision',      'rev_deleted',     
 'patch-rev_deleted.sql' ),
+                       array( 'add_field', 'image',         'img_width',       
 'patch-img_width.sql' ),
+                       array( 'add_field', 'image',         'img_metadata',    
 'patch-img_metadata.sql' ),
+                       array( 'add_field', 'user',          
'user_email_token', 'patch-user_email_token.sql' ),
+                       array( 'add_field', 'archive',       'ar_text_id',      
 'patch-archive-text_id.sql' ),
+                       array( 'do_namespace_size' ),
+                       array( 'add_field', 'image',         'img_media_type',  
 'patch-img_media_type.sql' ),
+                       array( 'do_pagelinks_update' ),
+                       array( 'do_drop_img_type' ),
+                       array( 'do_user_unique_update' ),
+                       array( 'do_user_groups_update' ),
+                       array( 'add_field', 'site_stats',    'ss_total_pages',  
 'patch-ss_total_articles.sql' ),
+                       array( 'add_table', 'user_newtalk',                     
 'patch-usernewtalk2.sql' ),
+                       array( 'add_table', 'transcache',                       
 'patch-transcache.sql' ),
+                       array( 'add_field', 'interwiki',     'iw_trans',        
 'patch-interwiki-trans.sql' ),
+                       array( 'add_table', 'trackbacks',                       
 'patch-trackbacks.sql' ),
+
+                       // 1.6
+                       array( 'do_watchlist_null' ),
+                       array( 'do_logging_timestamp_index' ),
+                       array( 'add_field', 'ipblocks',        
'ipb_range_start',  'patch-ipb_range_start.sql' ),
+                       array( 'do_page_random_update' ),
+                       array( 'add_field', 'user',            
'user_registration', 'patch-user_registration.sql' ),
+                       array( 'do_templatelinks_update' ),
+                       array( 'add_table', 'externallinks',                    
   'patch-externallinks.sql' ),
+                       array( 'add_table', 'job',                              
   'patch-job.sql' ),
+                       array( 'add_field', 'site_stats',      'ss_images',     
   'patch-ss_images.sql' ),
+                       array( 'add_table', 'langlinks',                        
   'patch-langlinks.sql' ),
+                       array( 'add_table', 'querycache_info',                  
   'patch-querycacheinfo.sql' ),
+                       array( 'add_table', 'filearchive',                      
   'patch-filearchive.sql' ),
+                       array( 'add_field', 'ipblocks',        'ipb_anon_only', 
   'patch-ipb_anon_only.sql' ),
+                       array( 'do_rc_indices_update' ),
+
+                       // 1.9
+                       array( 'add_field', 'user',          
'user_newpass_time', 'patch-user_newpass_time.sql' ),
+                       array( 'add_table', 'redirect',                         
  'patch-redirect.sql' ),
+                       array( 'add_table', 'querycachetwo',                    
  'patch-querycachetwo.sql' ),
+                       array( 'add_field', 'ipblocks',      
'ipb_enable_autoblock', 'patch-ipb_optional_autoblock.sql' ),
+                       array( 'do_backlinking_indices_update' ),
+                       array( 'add_field', 'recentchanges', 'rc_old_len',      
  'patch-rc_len.sql' ),
+                       array( 'add_field', 'user',          'user_editcount',  
  'patch-user_editcount.sql' ),
+
+                       // 1.10
+                       array( 'do_restrictions_update' ),
+                       array( 'add_field', 'logging',       'log_id',          
 'patch-log_id.sql' ),
+                       array( 'add_field', 'revision',      'rev_parent_id',   
 'patch-rev_parent_id.sql' ),
+                       array( 'add_field', 'page_restrictions', 'pr_id',       
 'patch-page_restrictions_sortkey.sql' ),
+                       array( 'add_field', 'revision',      'rev_len',         
 'patch-rev_len.sql' ),
+                       array( 'add_field', 'recentchanges', 'rc_deleted',      
 'patch-rc_deleted.sql' ),
+                       array( 'add_field', 'logging',       'log_deleted',     
 'patch-log_deleted.sql' ),
+                       array( 'add_field', 'archive',       'ar_deleted',      
 'patch-ar_deleted.sql' ),
+                       array( 'add_field', 'ipblocks',      'ipb_deleted',     
 'patch-ipb_deleted.sql' ),
+                       array( 'add_field', 'filearchive',   'fa_deleted',      
 'patch-fa_deleted.sql' ),
+                       array( 'add_field', 'archive',       'ar_len',          
 'patch-ar_len.sql' ),
+
+                       // 1.11
+                       array( 'add_field', 'ipblocks',      'ipb_block_email', 
 'patch-ipb_emailban.sql' ),
+                       array( 'do_categorylinks_indices_update' ),
+                       array( 'add_field', 'oldimage',      'oi_metadata',     
 'patch-oi_metadata.sql' ),
+                       array( 'do_archive_user_index' ),
+                       array( 'do_image_user_index' ),
+                       array( 'do_oldimage_user_index' ),
+                       array( 'add_field', 'archive',       'ar_page_id',      
 'patch-archive-page_id.sql' ),
+                       array( 'add_field', 'image',         'img_sha1',        
 'patch-img_sha1.sql' ),
+
+                       // 1.12
+                       array( 'add_table', 'protected_titles',                 
 'patch-protected_titles.sql' ),
+
+                       // 1.13
+                       array( 'add_field', 'ipblocks',      'ipb_by_text',     
 'patch-ipb_by_text.sql' ),
+                       array( 'add_table', 'page_props',                       
 'patch-page_props.sql' ),
+                       array( 'add_table', 'updatelog',                        
 'patch-updatelog.sql' ),
+                       array( 'add_table', 'category',                         
 'patch-category.sql' ),
+                       array( 'do_category_population' ),
+                       array( 'add_field', 'archive',       'ar_parent_id',    
 'patch-ar_parent_id.sql' ),
+                       array( 'add_field', 'user_newtalk',  
'user_last_timestamp', 'patch-user_last_timestamp.sql' ),
+                       array( 'do_populate_parent_id' ),
+                       array( 'check_bin', 'protected_titles', 'pt_title',     
 'patch-pt_title-encoding.sql', ),
+                       array( 'maybe_do_profiling_memory_update' ),
+                       array( 'do_filearchive_indices_update' ),
+
+                       // 1.14
+                       array( 'add_field', 'site_stats',    'ss_active_users', 
 'patch-ss_active_users.sql' ),
+                       array( 'do_active_users_init' ),
+                       array( 'add_field', 'ipblocks',      
'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
+
+                       // 1.15
+                       array( 'do_unique_pl_tl_il' ),
+                       array( 'add_table', 'change_tag',                       
 'patch-change_tag.sql' ),
+                       array( 'add_table', 'tag_summary',                      
 'patch-change_tag.sql' ),
+                       array( 'add_table', 'valid_tag',                        
 'patch-change_tag.sql' ),
+
+                       // 1.16
+                       array( 'add_table', 'user_properties',                  
 'patch-user_properties.sql' ),
+                       array( 'add_table', 'log_search',                       
 'patch-log_search.sql' ),
+                       array( 'do_log_search_population' ),
+                       array( 'add_field', 'logging',       'log_user_text',   
 'patch-log_user_text.sql' ),
+                       array( 'add_table', 'l10n_cache',                       
 'patch-l10n_cache.sql' ),
+                       array( 'add_table', 'external_user',                    
 'patch-external_user.sql' ),
+                       array( 'add_index', 'log_search',    'ls_field_val',    
 'patch-log_search-rename-index.sql' ),
+                       array( 'add_index', 'change_tag',    
'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
+                       array( 'add_field', 'redirect',      'rd_interwiki',    
 'patch-rd_interwiki.sql' ),
+                       array( 'do_update_transcache_field' ),
+                       array( 'rename_eu_wiki_id' ),
+                       array( 'do_update_mime_minor_field' ),
+                       array( 'do_populate_rev_len' ),
+
+                       // 1.17
+                       array( 'add_table', 'iwlinks',                          
 'patch-iwlinks.sql' ),
+                       array( 'add_index', 'iwlinks', 'iwl_prefix_title_from', 
 'patch-rename-iwl_prefix.sql' ),
+                       array( 'add_field', 'updatelog', 'ul_value',            
  'patch-ul_value.sql' ),
+                       array( 'add_field', 'interwiki',     'iw_api',          
 'patch-iw_api_and_wikiid.sql' ),
+                       array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix', 
 'patch-kill-iwl_prefix.sql' ),
+                       array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
+                       array( 'add_field', 'categorylinks', 'cl_collation', 
'patch-categorylinks-better-collation.sql' ),
+                       array( 'do_collation_update' ),
                );
        }
 }

Modified: trunk/phase3/includes/installer/SqliteUpdater.php
===================================================================
--- trunk/phase3/includes/installer/SqliteUpdater.php   2010-08-15 17:27:58 UTC 
(rev 71135)
+++ trunk/phase3/includes/installer/SqliteUpdater.php   2010-08-15 18:13:23 UTC 
(rev 71136)
@@ -10,38 +10,37 @@
        
        protected function getCoreUpdateList() {
                return array(
-                       '1.14' => array(
-                               array( 'add_field', 'site_stats',    
'ss_active_users',  'patch-ss_active_users.sql' ),
-                               array( 'do_active_users_init' ),
-                               array( 'add_field', 'ipblocks',      
'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
-                               array( 'sqlite_initial_indexes' ),
-                       ),
-                       '1.15' => array(
-                               array( 'add_table', 'change_tag',               
         'patch-change_tag.sql' ),
-                               array( 'add_table', 'tag_summary',              
         'patch-change_tag.sql' ),
-                               array( 'add_table', 'valid_tag',                
         'patch-change_tag.sql' ),
-                       ),
-                       '1.16' => array(
-                               array( 'add_table', 'user_properties',          
         'patch-user_properties.sql' ),
-                               array( 'add_table', 'log_search',               
         'patch-log_search.sql' ),
-                               array( 'do_log_search_population' ),
-                               array( 'add_field', 'logging',       
'log_user_text',    'patch-log_user_text.sql' ),
-                               array( 'add_table', 'l10n_cache',               
         'patch-l10n_cache.sql' ),
-                               array( 'add_table', 'external_user',            
         'patch-external_user.sql' ),
-                               array( 'add_index', 'log_search',    
'ls_field_val',     'patch-log_search-rename-index.sql' ),
-                               array( 'add_index', 'change_tag',    
'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
-                               array( 'add_field', 'redirect',      
'rd_interwiki',     'patch-rd_interwiki.sql' ),
-                               array( 'do_update_transcache_field' ),
-                               array( 'sqlite_setup_searchindex' ),
-                       ),
-                       '1.17' => array(
-                               array( 'add_table', 'iwlinks',                  
          'patch-iwlinks.sql' ),
-                               array( 'add_index', 'iwlinks',   
'iwl_prefix_title_from', 'patch-rename-iwl_prefix.sql' ),
-                               array( 'add_field', 'updatelog', 'ul_value',    
          'patch-ul_value.sql' ),
-                               array( 'add_field', 'interwiki',     'iw_api',  
         'patch-iw_api_and_wikiid.sql' ),
-                               array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix',  'patch-kill-iwl_prefix.sql' ),
-                               array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
-                       ),
+                       // 1.14
+                       array( 'add_field', 'site_stats',    'ss_active_users', 
 'patch-ss_active_users.sql' ),
+                       array( 'do_active_users_init' ),
+                       array( 'add_field', 'ipblocks',      
'ipb_allow_usertalk', 'patch-ipb_allow_usertalk.sql' ),
+                       array( 'sqlite_initial_indexes' ),
+
+                       // 1.15
+                       array( 'add_table', 'change_tag',                       
 'patch-change_tag.sql' ),
+                       array( 'add_table', 'tag_summary',                      
 'patch-change_tag.sql' ),
+                       array( 'add_table', 'valid_tag',                        
 'patch-change_tag.sql' ),
+
+                       // 1.16
+                       array( 'add_table', 'user_properties',                  
 'patch-user_properties.sql' ),
+                       array( 'add_table', 'log_search',                       
 'patch-log_search.sql' ),
+                       array( 'do_log_search_population' ),
+                       array( 'add_field', 'logging',       'log_user_text',   
 'patch-log_user_text.sql' ),
+                       array( 'add_table', 'l10n_cache',                       
 'patch-l10n_cache.sql' ),
+                       array( 'add_table', 'external_user',                    
 'patch-external_user.sql' ),
+                       array( 'add_index', 'log_search',    'ls_field_val',    
 'patch-log_search-rename-index.sql' ),
+                       array( 'add_index', 'change_tag',    
'change_tag_rc_tag', 'patch-change_tag-indexes.sql' ),
+                       array( 'add_field', 'redirect',      'rd_interwiki',    
 'patch-rd_interwiki.sql' ),
+                       array( 'do_update_transcache_field' ),
+                       array( 'sqlite_setup_searchindex' ),
+
+                       // 1.17
+                       array( 'add_table', 'iwlinks',                          
  'patch-iwlinks.sql' ),
+                       array( 'add_index', 'iwlinks',   
'iwl_prefix_title_from', 'patch-rename-iwl_prefix.sql' ),
+                       array( 'add_field', 'updatelog', 'ul_value',            
  'patch-ul_value.sql' ),
+                       array( 'add_field', 'interwiki',     'iw_api',          
 'patch-iw_api_and_wikiid.sql' ),
+                       array( 'drop_index_if_exists', 'iwlinks', 'iwl_prefix', 
 'patch-kill-iwl_prefix.sql' ),
+                       array( 'drop_index_if_exists', 'iwlinks', 
'iwl_prefix_from_title', 'patch-kill-iwl_pft.sql' ),
                );
        }
 }

Modified: trunk/phase3/maintenance/updaters.inc
===================================================================
--- trunk/phase3/maintenance/updaters.inc       2010-08-15 17:27:58 UTC (rev 
71135)
+++ trunk/phase3/maintenance/updaters.inc       2010-08-15 18:13:23 UTC (rev 
71136)
@@ -936,14 +936,12 @@
 
        wfRunHooks( 'LoadExtensionSchemaUpdates' );
 
-       $doUser = $shared ? $wgSharedDB && in_array( 'user', $wgSharedTables ) 
: !$wgSharedDB || !in_array( 'user', $wgSharedTables );
-
        if ( $wgDBtype === 'postgres' ) {
                do_postgres_updates();
                return;
        }
 
-       $up = DatabaseUpdater::newForDb( $wgDatabase );
+       $up = DatabaseUpdater::newForDb( $wgDatabase, $shared );
        $up->doUpdates();
 
        wfOut( "Deleting old default messages (this may take a long time!)..." 
);



_______________________________________________
MediaWiki-CVS mailing list
MediaWiki-CVS@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to