class MwSql extends Maintenance {
public function __construct() {
parent::__construct();
- $this->mDescription = "Send SQL queries to a MediaWiki database";
+ $this->mDescription = "Send SQL queries to a MediaWiki database. " .
+ "Takes a file name containing SQL as argument or runs interactively.";
$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;
+ // We wan't to allow "" for the wikidb, meaning don't call select_db()
+ $wiki = $this->hasOption( 'wikidb' ) ? $this->getOption( 'wikidb' ) : false;
// Get the appropriate load balancer (for this wiki)
if ( $this->hasOption( 'cluster' ) ) {
$lb = wfGetLBFactory()->getExternalLB( $this->getOption( 'cluster' ), $wiki );
try {
$res = $db->query( $wholeLine );
$this->sqlPrintResult( $res, $db );
- $prompt = $newPrompt;
- $wholeLine = '';
} catch ( DBQueryError $e ) {
$doDie = !Maintenance::posix_isatty( 0 );
$this->error( $e, $doDie );
}
+ $prompt = $newPrompt;
+ $wholeLine = '';
}
wfWaitForSlaves();
}