* @param array $params Parameters passed from DatabaseBase::factory()
*/
function __construct( array $params ) {
- global $wgDBprefix, $wgDBmwschema;
-
- $this->srvCache = ObjectCache::getLocalServerInstance( 'hash' );
-
$server = $params['host'];
$user = $params['user'];
$password = $params['password'];
$dbName = $params['dbname'];
$flags = $params['flags'];
- $tablePrefix = $params['tablePrefix'];
- $schema = $params['schema'];
- $foreign = $params['foreign'];
+
+ $this->mSchema = $params['schema'];
+ $this->mTablePrefix = $params['tablePrefix'];
$this->cliMode = isset( $params['cliMode'] )
? $params['cliMode']
$this->mSessionVars = $params['variables'];
- /** Get the default table prefix*/
- if ( $tablePrefix === 'get from global' ) {
- $this->mTablePrefix = $wgDBprefix;
- } else {
- $this->mTablePrefix = $tablePrefix;
- }
-
- /** Get the database schema*/
- if ( $schema === 'get from global' ) {
- $this->mSchema = $wgDBmwschema;
- } else {
- $this->mSchema = $schema;
- }
+ $this->mForeign = $params['foreign'];
- $this->mForeign = $foreign;
+ $this->srvCache = isset( $params['srvCache'] )
+ ? $params['srvCache']
+ : new EmptyBagOStuff();
$this->profiler = isset( $params['profiler'] )
? $params['profiler']
$p['dbname'] = isset( $p['dbname'] ) ? $p['dbname'] : false;
$p['flags'] = isset( $p['flags'] ) ? $p['flags'] : 0;
$p['variables'] = isset( $p['variables'] ) ? $p['variables'] : [];
- $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : 'get from global';
+ $p['tablePrefix'] = isset( $p['tablePrefix'] ) ? $p['tablePrefix'] : '';
if ( !isset( $p['schema'] ) ) {
$p['schema'] = isset( $defaultSchemas[$dbType] ) ? $defaultSchemas[$dbType] : null;
}
* @return LoadBalancer
*/
public function newMainLB( $wiki = false ) {
- global $wgDBservers;
+ global $wgDBservers, $wgDBprefix, $wgDBmwschema;
if ( is_array( $wgDBservers ) ) {
$servers = $wgDBservers;
} else {
$server['replica'] = true;
}
- $server += [ 'flags' => DBO_DEFAULT ];
+ $server += [
+ 'schema' => $wgDBmwschema,
+ 'tablePrefix' => $wgDBprefix,
+ 'flags' => DBO_DEFAULT
+ ];
}
} else {
global $wgDBserver, $wgDBuser, $wgDBpassword, $wgDBname, $wgDBtype, $wgDebugDumpSql;
'user' => $wgDBuser,
'password' => $wgDBpassword,
'dbname' => $wgDBname,
+ 'schema' => $wgDBmwschema,
+ 'tablePrefix' => $wgDBprefix,
'type' => $wgDBtype,
'load' => 1,
'flags' => $flags,