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