Index: trunk/extensions/FlaggedRevs/schema/FlaggedRevsUpdater.hooks.php |
— | — | @@ -33,8 +33,8 @@ |
34 | 34 | 'flaggedrevs_stats', "$base/patch-flaggedrevs_stats.sql", true ) ); |
35 | 35 | $du->addExtensionUpdate( array( 'FlaggedRevsUpdaterHooks::doFlaggedImagesTimestampNULL', |
36 | 36 | "$base/patch-fi_img_timestamp.sql" ) ); |
37 | | - $du->addExtensionUpdate( array( 'addIndex', |
38 | | - 'flaggedrevs', 'page_rev', "$base/patch-fr_page_rev-index.sql", true ) ); |
| 37 | + $du->addExtensionUpdate( array( 'FlaggedRevsUpdaterHooks::doFlaggedRevsRevTimestamp', |
| 38 | + "$base/patch-fr_page_rev-index.sql" ) ); |
39 | 39 | } elseif ( $wgDBtype == 'postgres' ) { |
40 | 40 | $base = dirname( __FILE__ ) . '/postgres'; |
41 | 41 | // Initial install tables (current schema) |
— | — | @@ -62,8 +62,8 @@ |
63 | 63 | // @TODO: PG stats table??? |
64 | 64 | $du->addExtensionUpdate( array( 'FlaggedRevsUpdaterHooks::doFlaggedImagesTimestampNULL', |
65 | 65 | "$base/patch-fi_img_timestamp.sql" ) ); |
66 | | - $du->addExtensionUpdate( array( 'addIndex', |
67 | | - 'flaggedrevs', 'page_rev', "$base/patch-fr_page_rev-index.sql", true ) ); |
| 66 | + $du->addExtensionUpdate( array( 'FlaggedRevsUpdaterHooks::doFlaggedRevsRevTimestamp', |
| 67 | + "$base/patch-fr_page_rev-index.sql" ) ); |
68 | 68 | } elseif ( $wgDBtype == 'sqlite' ) { |
69 | 69 | $base = dirname( __FILE__ ) . '/mysql'; |
70 | 70 | $du->addExtensionUpdate( array( 'addTable', |
— | — | @@ -82,4 +82,21 @@ |
83 | 83 | $du->getDB()->sourceFile( $patch ); |
84 | 84 | $du->output( "done.\n" ); |
85 | 85 | } |
| 86 | + |
| 87 | + public static function doFlaggedRevsRevTimestamp( $du, $patch ) { |
| 88 | + $exists = $du->getDB()->fieldInfo( 'flaggedrevs', 'fr_rev_timestamp' ); |
| 89 | + if ( $exists ) { |
| 90 | + $du->output( "...fr_rev_timestamp already exists.\n" ); |
| 91 | + return; |
| 92 | + } |
| 93 | + include_once( dirname( __FILE__ ) . "/../maintenance/populateRevTimestamp.inc" ); |
| 94 | + if ( !function_exists( 'populate_fr_rev_timestamp' ) ) { |
| 95 | + $du->output( "...populateRevTimestamp.inc missing! Aborting fr_rev_timestamp update.\n" ); |
| 96 | + return; // sanity |
| 97 | + } |
| 98 | + $du->output( "Adding fr_rev_timestamp and redoing flaggedrevs table indexes... " ); |
| 99 | + $du->getDB()->sourceFile( $patch ); |
| 100 | + populate_fr_rev_timestamp( 0 ); |
| 101 | + $du->output( "done.\n" ); |
| 102 | + } |
86 | 103 | } |