diff options
Diffstat (limited to 'maintenance/storage/moveToExternal.php')
-rw-r--r-- | maintenance/storage/moveToExternal.php | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/maintenance/storage/moveToExternal.php b/maintenance/storage/moveToExternal.php index 0b95ba5e68e4..9554797f44b9 100644 --- a/maintenance/storage/moveToExternal.php +++ b/maintenance/storage/moveToExternal.php @@ -21,6 +21,8 @@ * @ingroup Maintenance ExternalStorage */ +use MediaWiki\MediaWikiServices; + define( 'REPORTING_INTERVAL', 1 ); if ( !defined( 'MEDIAWIKI' ) ) { @@ -30,21 +32,22 @@ if ( !defined( 'MEDIAWIKI' ) ) { $fname = 'moveToExternal'; - if ( !isset( $args[0] ) ) { - print "Usage: php moveToExternal.php [-s <startid>] [-e <endid>] <cluster>\n"; + if ( !isset( $args[1] ) ) { + print "Usage: php moveToExternal.php [-s <startid>] [-e <endid>] <type> <location>\n"; exit; } - $cluster = $args[0]; + $type = $args[0]; // e.g. "DB" or "mwstore" + $location = $args[1]; // e.g. "cluster12" or "global-swift" $dbw = wfGetDB( DB_MASTER ); $maxID = $options['e'] ?? $dbw->selectField( 'text', 'MAX(old_id)', '', $fname ); $minID = $options['s'] ?? 1; - moveToExternal( $cluster, $maxID, $minID ); + moveToExternal( $type, $location, $maxID, $minID ); } -function moveToExternal( $cluster, $maxID, $minID = 1 ) { +function moveToExternal( $type, $location, $maxID, $minID = 1 ) { $fname = 'moveToExternal'; $dbw = wfGetDB( DB_MASTER ); $dbr = wfGetDB( DB_REPLICA ); @@ -53,7 +56,9 @@ function moveToExternal( $cluster, $maxID, $minID = 1 ) { $blockSize = 1000; $numBlocks = ceil( $count / $blockSize ); print "Moving text rows from $minID to $maxID to external storage\n"; - $ext = new ExternalStoreDB; + + $esFactory = MediaWikiServices::getInstance()->getExternalStoreFactory(); + $extStore = $esFactory->getStore( $type ); $numMoved = 0; for ( $block = 0; $block < $numBlocks; $block++ ) { @@ -108,7 +113,7 @@ function moveToExternal( $cluster, $maxID, $minID = 1 ) { # print "Storing " . strlen( $text ) . " bytes to $url\n"; # print "old_id=$id\n"; - $url = $ext->store( $cluster, $text ); + $url = $extStore->store( $location, $text ); if ( !$url ) { print "Error writing to external storage\n"; exit; |