* Gets master database connections for all of the ExternalStoreDB
* stores configured in $wgDefaultExternalStore.
*
- * @return array Array of DatabaseBase master connections
+ * @return DatabaseBase[] Array of DatabaseBase master connections
*/
protected static function getExternalStoreDatabaseConnections() {
global $wgDefaultExternalStore;
+ /** @var ExternalStoreDB $externalStoreDB */
$externalStoreDB = ExternalStore::getStoreObject( 'DB' );
$defaultArray = (array) $wgDefaultExternalStore;
$dbws = [];
foreach ( $defaultArray as $url ) {
if ( strpos( $url, 'DB://' ) === 0 ) {
list( $proto, $cluster ) = explode( '://', $url, 2 );
- $dbw = $externalStoreDB->getMaster( $cluster );
+ // Avoid getMaster() because setupDatabaseWithTestPrefix()
+ // requires DatabaseBase instead of plain DBConnRef/IDatabase
+ $lb = $externalStoreDB->getLoadBalancer( $cluster );
+ $dbw = $lb->getConnection( DB_MASTER );
$dbws[] = $dbw;
}
}