jenkins-bot has submitted this change and it was merged.

Change subject: Added --wikidb param to sql.php
......................................................................


Added --wikidb param to sql.php

* This is useful for updating DBs that are not actually a that of a wiki.
  For example a global blocking or central auth DB may not correspond to
  any single wiki. Trying to use --wiki will fail with het deploy

Change-Id: I232182b79c9ca6421789f19771ba427498fff713
---
M maintenance/sql.php
1 file changed, 12 insertions(+), 10 deletions(-)

Approvals:
  Chad: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/maintenance/sql.php b/maintenance/sql.php
index a628b0b..5cad5a7 100644
--- a/maintenance/sql.php
+++ b/maintenance/sql.php
@@ -34,15 +34,17 @@
                parent::__construct();
                $this->mDescription = "Send SQL queries to a MediaWiki 
database";
                $this->addOption( 'cluster', 'Use an external cluster by name', 
false, true );
+               $this->addOption( 'wikidb', 'The database wiki ID to use if not 
the current one', false, true );
                $this->addOption( 'slave', 'Use a slave server (either "any" or 
by name)', false, true );
        }
 
        public function execute() {
+               $wiki = $this->getOption( 'wikidb' ) ?: false;
                // Get the appropriate load balancer (for this wiki)
                if ( $this->hasOption( 'cluster' ) ) {
-                       $lb = wfGetLBFactory()->getExternalLB( 
$this->getOption( 'cluster' ) );
+                       $lb = wfGetLBFactory()->getExternalLB( 
$this->getOption( 'cluster' ), $wiki );
                } else {
-                       $lb = wfGetLB();
+                       $lb = wfGetLB( $wiki );
                }
                // Figure out which server to use
                if ( $this->hasOption( 'slave' ) ) {
@@ -65,9 +67,9 @@
                        $index = DB_MASTER;
                }
                // Get a DB handle (with this wiki's DB selected) from the 
appropriate load balancer
-               $dbw = $lb->getConnection( $index );
-               if ( $this->hasOption( 'slave' ) && $dbw->getLBInfo( 'master' ) 
!== null ) {
-                       $this->error( "The server selected 
({$dbw->getServer()}) is not a slave.", 1 );
+               $db = $lb->getConnection( $index, array(), $wiki );
+               if ( $this->hasOption( 'slave' ) && $db->getLBInfo( 'master' ) 
!== null ) {
+                       $this->error( "The server selected ({$db->getServer()}) 
is not a slave.", 1 );
                }
 
                if ( $this->hasArg( 0 ) ) {
@@ -76,7 +78,7 @@
                                $this->error( "Unable to open input file", true 
);
                        }
 
-                       $error = $dbw->sourceStream( $file, false, array( 
$this, 'sqlPrintResult' ) );
+                       $error = $db->sourceStream( $file, false, array( $this, 
'sqlPrintResult' ) );
                        if ( $error !== true ) {
                                $this->error( $error, true );
                        } else {
@@ -102,7 +104,7 @@
                                # User simply pressed return key
                                continue;
                        }
-                       $done = $dbw->streamStatementEnd( $wholeLine, $line );
+                       $done = $db->streamStatementEnd( $wholeLine, $line );
 
                        $wholeLine .= $line;
 
@@ -114,12 +116,12 @@
                        if ( $useReadline ) {
                                # Delimiter is eated by streamStatementEnd, we 
add it
                                # up in the history (bug 37020)
-                               readline_add_history( $wholeLine . 
$dbw->getDelimiter() );
+                               readline_add_history( $wholeLine . 
$db->getDelimiter() );
                                readline_write_history( $historyFile );
                        }
                        try {
-                               $res = $dbw->query( $wholeLine );
-                               $this->sqlPrintResult( $res, $dbw );
+                               $res = $db->query( $wholeLine );
+                               $this->sqlPrintResult( $res, $db );
                                $prompt = $newPrompt;
                                $wholeLine = '';
                        } catch ( DBQueryError $e ) {

-- 
To view, visit https://gerrit.wikimedia.org/r/100707
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I232182b79c9ca6421789f19771ba427498fff713
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: master
Gerrit-Owner: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Aaron Schulz <asch...@wikimedia.org>
Gerrit-Reviewer: Chad <ch...@wikimedia.org>
Gerrit-Reviewer: Parent5446 <tylerro...@gmail.com>
Gerrit-Reviewer: Spage <sp...@wikimedia.org>
Gerrit-Reviewer: jenkins-bot

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

Reply via email to