http://www.mediawiki.org/wiki/Special:Code/MediaWiki/72884
Revision: 72884 Author: ialex Date: 2010-09-12 19:28:05 +0000 (Sun, 12 Sep 2010) Log Message: ----------- Converted CheckUser extension to use DatabaseUpdater Modified Paths: -------------- trunk/extensions/CheckUser/CheckUser.php Modified: trunk/extensions/CheckUser/CheckUser.php =================================================================== --- trunk/extensions/CheckUser/CheckUser.php 2010-09-12 19:26:01 UTC (rev 72883) +++ trunk/extensions/CheckUser/CheckUser.php 2010-09-12 19:28:05 UTC (rev 72884) @@ -338,38 +338,56 @@ return $squidOnly; } -function efCheckUserSchemaUpdates() { - global $wgDBtype, $wgExtNewIndexes; +function efCheckUserSchemaUpdates( $updater = null ) { + $base = dirname( __FILE__ ); + if ( $updater === null ) { + global $wgDBtype, $wgExtNewIndexes; + efCheckUserCreateTables(); + if ( $wgDBtype == 'mysql' ) { + $wgExtNewIndexes[] = array( + 'cu_changes', 'cuc_ip_hex_time', + "$base/archives/patch-cu_changes_indexes.sql" + ); + $wgExtNewIndexes[] = array( + 'cu_changes', 'cuc_user_ip_time', + "$base/archives/patch-cu_changes_indexes2.sql" + ); + } + } else { + $updater->addExtensionUpdate( array( 'efCheckUserCreateTables' ) ); + if ( $updater->getDB()->getType() == 'mysql' ) { + $updater->addExtensionUpdate( array( 'addIndex', 'cu_changes', + 'cuc_ip_hex_time', "$base/archives/patch-cu_changes_indexes.sql", true ) ); + $updater->addExtensionUpdate( array( 'addIndex', 'cu_changes', + 'cuc_user_ip_time', "$base/archives/patch-cu_changes_indexes2.sql", true ) ); + } + } - # Run install.inc as necessary + return true; +} + +function efCheckUserCreateTables( $updater = null ) { + if ( $updater === null ) { + $db = wfGetDB( DB_MASTER ); + } else { + $db = $updater->getDB(); + } + $base = dirname( __FILE__ ); - $db = wfGetDB( DB_MASTER ); if ( $db->tableExists( 'cu_changes' ) ) { - echo "...cu_changes already exists.\n"; + wfOut( "...cu_changes table already exists.\n" ); } else { require_once "$base/install.inc"; create_cu_changes( $db ); } if ( $db->tableExists( 'cu_log' ) ) { - echo "...cu_log already exists.\n"; + wfOut( "...cu_log table already exists.\n" ); } else { require_once "$base/install.inc"; create_cu_log( $db ); } - - if ( $wgDBtype == 'mysql' ) { - $wgExtNewIndexes[] = array( - 'cu_changes', 'cuc_ip_hex_time', - "$base/archives/patch-cu_changes_indexes.sql" - ); - $wgExtNewIndexes[] = array( - 'cu_changes', 'cuc_user_ip_time', - "$base/archives/patch-cu_changes_indexes2.sql" - ); - } - return true; } /** _______________________________________________ MediaWiki-CVS mailing list MediaWiki-CVS@lists.wikimedia.org https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs