X-Git-Url: https://git.heureux-cyclage.org/?a=blobdiff_plain;f=maintenance%2Fstorage%2FmoveToExternal.php;h=9bb554c64c81cba3bf1df6913409b46196e8a511;hb=04d1aa3033f40a38d721f7f0e88b5bac440d2869;hp=80dc7f96202c7111994202086c7e356aeac3b46e;hpb=b8fce54279c4bc169247697642d87a1c8426e6d3;p=lhc%2Fweb%2Fwiklou.git diff --git a/maintenance/storage/moveToExternal.php b/maintenance/storage/moveToExternal.php index 80dc7f9620..9554797f44 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,34 +32,33 @@ if ( !defined( 'MEDIAWIKI' ) ) { $fname = 'moveToExternal'; - if ( !isset( $args[0] ) ) { - print "Usage: php moveToExternal.php [-s ] [-e ] \n"; + if ( !isset( $args[1] ) ) { + print "Usage: php moveToExternal.php [-s ] [-e ] \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 ); - if ( isset( $options['e'] ) ) { - $maxID = $options['e']; - } else { - $maxID = $dbw->selectField( 'text', 'MAX(old_id)', false, $fname ); - } - $minID = isset( $options['s'] ) ? $options['s'] : 1; + $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_SLAVE ); + $dbr = wfGetDB( DB_REPLICA ); $count = $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++ ) { @@ -112,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;