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

Revision: 72871
Author:   ialex
Date:     2010-09-12 16:28:09 +0000 (Sun, 12 Sep 2010)

Log Message:
-----------
Follow-up r72870: converted CodeReview's LoadExtensionSchemaUpdates hook to new 
DatabaseUpdater (specifically for the update_row_exists() method)

Modified Paths:
--------------
    trunk/extensions/CodeReview/CodeReview.php

Modified: trunk/extensions/CodeReview/CodeReview.php
===================================================================
--- trunk/extensions/CodeReview/CodeReview.php  2010-09-12 16:24:03 UTC (rev 
72870)
+++ trunk/extensions/CodeReview/CodeReview.php  2010-09-12 16:28:09 UTC (rev 
72871)
@@ -165,25 +165,28 @@
 # Schema changes
 $wgHooks['LoadExtensionSchemaUpdates'][] = 'efCodeReviewSchemaUpdates';
 
-function efCodeReviewSchemaUpdates() {
-       global $wgDBtype, $wgExtNewFields, /*$wgExtPGNewFields,*/ 
$wgExtNewIndexes, $wgExtNewTables, $wgExtModifiedFields;
+function efCodeReviewSchemaUpdates( $updater ) {
        $base = dirname( __FILE__ );
-       if ( $wgDBtype == 'mysql' ) {
-               $wgExtNewTables[] = array( 'code_rev', "$base/codereview.sql" 
); // Initial install tables
-               $wgExtNewFields[] = array( 'code_rev', 'cr_diff', 
"$base/archives/codereview-cr_diff.sql" );
-               $wgExtNewIndexes[] = array( 'code_relations', 'repo_to_from', 
"$base/archives/code_relations_index.sql" );
+       switch ( $updater->getDB()->getType() ) {
+       case 'mysql':
+               $updater->addExtensionUpdate( array( 'addTable', 'code_rev', 
"$base/codereview.sql", true ) ); // Initial install tables
+               $updater->addExtensionUpdate( array( 'addField', 'code_rev', 
'cr_diff', "$base/archives/codereview-cr_diff.sql", true ) );
+               $updater->addExtensionUpdate( array( 'addIndex', 
'code_relations', 'repo_to_from', "$base/archives/code_relations_index.sql", 
true ) );
 
-               // $wgExtNewFields[] = array( 'code_rev', 
"$base/archives/codereview-cr_status.sql" ); // FIXME FIXME this is a change to 
options... don't know how
+               // $updater->addExtensionUpdate( array( 'addField', 'code_rev', 
'cr_status', "$base/archives/codereview-cr_status.sql", true ) ); // FIXME 
FIXME this is a change to options... don't know how
 
-               if ( !update_row_exists( 'add old to code_rev enum' ) ) {
-                       $wgExtModifiedFields[] = array( 'code_rev', 
'cr_status', "$base/archives/codereview-cr_old_status.sql" );
+               if ( !$updater->updateRowExists( 'add old to code_rev enum' ) ) 
{
+                       $updater->addExtensionUpdate( array( 'modifyField', 
'code_rev', 'cr_status', "$base/archives/codereview-cr_old_status.sql", true ) 
);
                }
 
-               $wgExtNewTables[] = array( 'code_bugs', 
"$base/archives/code_bugs.sql" );
-       } elseif ( $wgDBtype == 'sqlite' ) {
-               $wgExtNewTables[] = array( 'code_rev', "$base/codereview.sql" );
-       } elseif ( $wgDBtype == 'postgres' ) {
+               $updater->addExtensionUpdate( array( 'addTable', 'code_bugs', 
"$base/archives/code_bugs.sql", true ) );
+               break;
+       case 'sqlite':
+               $updater->addExtensionUpdate( array( 'addTable', 'code_rev', 
"$base/codereview.sql", true ) );
+               break;
+       case 'postgres':
                // TODO
+               break;
        }
        return true;
 }



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

Reply via email to