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

Reply via email to