MediaWiki REL1_33
|
Base class for DBMS-specific installation helper classes. More...
Public Member Functions | |
__construct ( $parent) | |
Construct and initialise parent. | |
checkPrerequisites () | |
Checks for installation prerequisites other than those checked by isCompiled() | |
createExtensionTables () | |
Create the tables for each extension the user enabled. | |
createTables () | |
Create database tables from scratch. | |
doUpgrade () | |
Perform database upgrades. | |
enableLB () | |
Set up LBFactory so that wfGetDB() etc. | |
getCheckBox ( $var, $label, $attribs=[], $helpData="") | |
Get a labelled checkbox to configure a local boolean variable. | |
getConnectForm () | |
Get HTML for a web form that configures this database. | |
getConnection () | |
Connect to the database using the administrative user/password currently defined in the session. | |
getGlobalDefaults () | |
Get a name=>value map of MW configuration globals for the default values. | |
getGlobalNames () | |
Get an array of MW configuration globals that will be configured by this class. | |
getInstallUserBox () | |
Get a standard install-user fieldset. | |
getInternalDefaults () | |
Get a name=>value map of internal variables used during installation. | |
getLocalSettings () | |
Get the DBMS-specific options for LocalSettings.php generation. | |
getName () | |
Return the internal name, e.g. | |
getPasswordBox ( $var, $label, $attribs=[], $helpData="") | |
Get a labelled password box to configure a local variable. | |
getRadioSet ( $params) | |
Get a set of labelled radio buttons. | |
getReadableName () | |
Get the internationalised name for this DBMS. | |
getSchemaPath ( $db) | |
Return a path to the DBMS-specific schema file, otherwise default to tables.sql. | |
getSchemaVars () | |
Override this to provide DBMS-specific schema variables, to be substituted into tables.sql and other schema files. | |
getSettingsForm () | |
Get HTML for a web form that retrieves settings used for installation. | |
getTextBox ( $var, $label, $attribs=[], $helpData="") | |
Get a labelled text box to configure a local variable. | |
getUpdateKeysPath ( $db) | |
Return a path to the DBMS-specific update key file, otherwise default to update-keys.sql. | |
getVar ( $var, $default=null) | |
Get a variable, taking local defaults into account. | |
getWebUserBox ( $noCreateMsg=false) | |
Get a standard web-user fieldset. | |
insertUpdateKeys () | |
Insert update keys into table to prevent running unneded updates. | |
isCompiled () | |
needsUpgrade () | |
Determine whether an existing installation of MediaWiki is present in the configured administrative connection. | |
openConnection () | |
Open a connection to the database using the administrative user/password currently defined in the session, without any caching. | |
outputHandler ( $string) | |
populateInterwikiTable () | |
Common function for databases that don't understand the MySQLish syntax of interwiki.sql. | |
preInstall () | |
Allow DB installers a chance to make last-minute changes before installation occurs. | |
preUpgrade () | |
Allow DB installers a chance to make checks before upgrade. | |
setupDatabase () | |
Create the database and return a Status object indicating success or failure. | |
setupSchemaVars () | |
Set appropriate schema variables in the current database connection. | |
setVar ( $name, $value) | |
Convenience alias for $this->parent->setVar() | |
setVarsFromRequest ( $varNames) | |
Convenience function to set variables based on form data. | |
submitConnectForm () | |
Set variables based on the request array, assuming it was submitted via the form returned by getConnectForm(). | |
submitInstallUserBox () | |
Submit a standard install user fieldset. | |
submitSettingsForm () | |
Set variables based on the request array, assuming it was submitted via the form return by getSettingsForm(). | |
submitWebUserBox () | |
Submit the form from getWebUserBox(). | |
Static Public Member Functions | |
static | meetsMinimumRequirement ( $serverVersion) |
Whether the provided version meets the necessary requirements for this type. | |
Public Attributes | |
Database | $db = null |
The database connection. | |
WebInstaller | $parent |
The Installer object. | |
Static Public Attributes | |
static string | $minimumVersion |
Set by subclasses. | |
Static Protected Member Functions | |
static | checkExtension ( $name) |
Convenience function. | |
Protected Attributes | |
array | $globalNames = [] |
Array of MW configuration globals this class uses. | |
array | $internalDefaults = [] |
Internal variables for installation. | |
Static Protected Attributes | |
static string | $notMiniumumVerisonMessage |
Set by subclasses. | |
Private Member Functions | |
getSqlFilePath ( $db, $filename) | |
Return a path to the DBMS-specific SQL file if it exists, otherwise default SQL file. | |
stepApplySourceFile ( $sourceFileMethod, $stepName, $archiveTableMustNotExist=false) | |
Apply a SQL source file to the database as part of running an installation step. | |
Base class for DBMS-specific installation helper classes.
Definition at line 35 of file DatabaseInstaller.php.
DatabaseInstaller::__construct | ( | $parent | ) |
Construct and initialise parent.
This is typically only called from Installer::getDBInstaller()
WebInstaller | $parent |
Definition at line 430 of file DatabaseInstaller.php.
References $parent.
|
staticprotected |
Convenience function.
Check if a named extension is present.
string | $name |
Definition at line 441 of file DatabaseInstaller.php.
References and().
Referenced by MssqlInstaller\isCompiled(), MysqlInstaller\isCompiled(), OracleInstaller\isCompiled(), PostgresInstaller\isCompiled(), and SqliteInstaller\isCompiled().
DatabaseInstaller::checkPrerequisites | ( | ) |
Checks for installation prerequisites other than those checked by isCompiled()
Reimplemented in SqliteInstaller.
Definition at line 109 of file DatabaseInstaller.php.
DatabaseInstaller::createExtensionTables | ( | ) |
Create the tables for each extension the user enabled.
Definition at line 307 of file DatabaseInstaller.php.
References getConnection(), and DatabaseUpdater\newForDB().
DatabaseInstaller::createTables | ( | ) |
Create database tables from scratch.
Reimplemented in MssqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
Definition at line 249 of file DatabaseInstaller.php.
References stepApplySourceFile().
DatabaseInstaller::doUpgrade | ( | ) |
Perform database upgrades.
@suppress SecurityCheck-XSS Escaping provided by $this->outputHandler
Definition at line 379 of file DatabaseInstaller.php.
References $e, $ret, and(), enableLB(), DatabaseUpdater\newForDB(), and setupSchemaVars().
DatabaseInstaller::enableLB | ( | ) |
Set up LBFactory so that wfGetDB() etc.
works. We set up a special LBFactory instance which returns the current installer connection.
Definition at line 358 of file DatabaseInstaller.php.
References $services, and getConnection().
Referenced by PostgresInstaller\createTables(), doUpgrade(), and stepApplySourceFile().
DatabaseInstaller::getCheckBox | ( | $var, | |
$label, | |||
$attribs = [], | |||
$helpData = "" ) |
Get a labelled checkbox to configure a local boolean variable.
string | $var | |
string | $label | |
array | $attribs | Optional. |
string | $helpData | Optional. |
Definition at line 566 of file DatabaseInstaller.php.
References $attribs, $value, and(), getName(), and getVar().
Referenced by MssqlInstaller\getSettingsForm(), and getWebUserBox().
|
abstract |
Get HTML for a web form that configures this database.
Configuration at this time should be the minimum needed to connect and test whether install or upgrade is required.
If this is called, $this->parent can be assumed to be a WebInstaller.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
DatabaseInstaller::getConnection | ( | ) |
Connect to the database using the administrative user/password currently defined in the session.
Returns a status object. On success, the status object will contain a Database object in its value member.
This will return a cached connection if one is available.
Reimplemented in PostgresInstaller.
Definition at line 181 of file DatabaseInstaller.php.
References DBO_TRX, and openConnection().
Referenced by MssqlInstaller\canCreateAccounts(), MysqlInstaller\canCreateAccounts(), createExtensionTables(), enableLB(), MysqlInstaller\getEngines(), needsUpgrade(), populateInterwikiTable(), MssqlInstaller\preUpgrade(), MysqlInstaller\preUpgrade(), MssqlInstaller\setupDatabase(), MysqlInstaller\setupDatabase(), SqliteInstaller\setupDatabase(), setupSchemaVars(), MssqlInstaller\setupUser(), MysqlInstaller\setupUser(), OracleInstaller\setupUser(), stepApplySourceFile(), MssqlInstaller\submitConnectForm(), MysqlInstaller\submitConnectForm(), and OracleInstaller\submitConnectForm().
DatabaseInstaller::getGlobalDefaults | ( | ) |
Get a name=>value map of MW configuration globals for the default values.
Reimplemented in MssqlInstaller, PostgresInstaller, and SqliteInstaller.
Definition at line 459 of file DatabaseInstaller.php.
References $GLOBALS, and(), and getGlobalNames().
Referenced by getVar().
DatabaseInstaller::getGlobalNames | ( | ) |
Get an array of MW configuration globals that will be configured by this class.
Definition at line 421 of file DatabaseInstaller.php.
References $globalNames.
Referenced by getGlobalDefaults().
DatabaseInstaller::getInstallUserBox | ( | ) |
Get a standard install-user fieldset.
Definition at line 644 of file DatabaseInstaller.php.
References getPasswordBox(), getTextBox(), text, and wfMessage().
Referenced by MysqlInstaller\getConnectForm(), OracleInstaller\getConnectForm(), and PostgresInstaller\getConnectForm().
DatabaseInstaller::getInternalDefaults | ( | ) |
Get a name=>value map of internal variables used during installation.
Definition at line 473 of file DatabaseInstaller.php.
References $internalDefaults.
Referenced by getVar().
|
abstract |
Get the DBMS-specific options for LocalSettings.php generation.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
|
abstract |
Return the internal name, e.g.
'mysql', or 'sqlite'.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
Referenced by getCheckBox(), getPasswordBox(), getRadioSet(), getReadableName(), getTextBox(), and setVarsFromRequest().
DatabaseInstaller::getPasswordBox | ( | $var, | |
$label, | |||
$attribs = [], | |||
$helpData = "" ) |
Get a labelled password box to configure a local variable.
Implements password hiding.
string | $var | |
string | $label | |
array | $attribs | |
string | $helpData |
Definition at line 540 of file DatabaseInstaller.php.
References $attribs, $value, and(), getName(), and getVar().
Referenced by MssqlInstaller\getConnectForm(), getInstallUserBox(), MssqlInstaller\getSettingsForm(), and getWebUserBox().
DatabaseInstaller::getRadioSet | ( | $params | ) |
Get a set of labelled radio buttons.
array | $params | Parameters are: var: The variable to be configured (required) label: The message name for the label (required) itemLabelPrefix: The message name prefix for the item labels (required) values: List of allowed values (required) itemAttribs Array of attribute arrays, outer key is the value name (optional) |
Definition at line 592 of file DatabaseInstaller.php.
References $params, getName(), and getVar().
Referenced by MssqlInstaller\getConnectForm(), MssqlInstaller\getSettingsForm(), and MysqlInstaller\getSettingsForm().
DatabaseInstaller::getReadableName | ( | ) |
Get the internationalised name for this DBMS.
Definition at line 449 of file DatabaseInstaller.php.
References getName(), and wfMessage().
DatabaseInstaller::getSchemaPath | ( | $db | ) |
Return a path to the DBMS-specific schema file, otherwise default to tables.sql.
IDatabase | $db |
Definition at line 288 of file DatabaseInstaller.php.
References getSqlFilePath().
Referenced by PostgresInstaller\createTables().
DatabaseInstaller::getSchemaVars | ( | ) |
Override this to provide DBMS-specific schema variables, to be substituted into tables.sql and other schema files.
Reimplemented in MssqlInstaller, MysqlInstaller, and OracleInstaller.
Definition at line 331 of file DatabaseInstaller.php.
Referenced by setupSchemaVars().
DatabaseInstaller::getSettingsForm | ( | ) |
Get HTML for a web form that retrieves settings used for installation.
$this->parent can be assumed to be a WebInstaller. If the DB type has no settings beyond those already configured with getConnectForm(), this should return false.
Reimplemented in MssqlInstaller, MysqlInstaller, and PostgresInstaller.
Definition at line 140 of file DatabaseInstaller.php.
|
private |
Return a path to the DBMS-specific SQL file if it exists, otherwise default SQL file.
IDatabase | $db | |
string | $filename |
Definition at line 270 of file DatabaseInstaller.php.
References $db, $IP, and(), and Wikimedia\Rdbms\IDatabase\getType().
Referenced by getSchemaPath(), and getUpdateKeysPath().
DatabaseInstaller::getTextBox | ( | $var, | |
$label, | |||
$attribs = [], | |||
$helpData = "" ) |
Get a labelled text box to configure a local variable.
string | $var | |
string | $label | |
array | $attribs | |
string | $helpData |
Definition at line 513 of file DatabaseInstaller.php.
References $attribs, $value, and(), getName(), and getVar().
Referenced by MssqlInstaller\getConnectForm(), MysqlInstaller\getConnectForm(), OracleInstaller\getConnectForm(), PostgresInstaller\getConnectForm(), SqliteInstaller\getConnectForm(), getInstallUserBox(), MssqlInstaller\getSettingsForm(), and getWebUserBox().
DatabaseInstaller::getUpdateKeysPath | ( | $db | ) |
Return a path to the DBMS-specific update key file, otherwise default to update-keys.sql.
IDatabase | $db |
Definition at line 299 of file DatabaseInstaller.php.
References getSqlFilePath().
DatabaseInstaller::getVar | ( | $var, | |
$default = null ) |
Get a variable, taking local defaults into account.
string | $var | |
mixed | null | $default |
Definition at line 483 of file DatabaseInstaller.php.
References and(), getGlobalDefaults(), and getInternalDefaults().
Referenced by MssqlInstaller\canCreateAccounts(), MysqlInstaller\canCreateAccounts(), PostgresInstaller\canCreateObjectsForWebUser(), MssqlInstaller\createTables(), OracleInstaller\createTables(), PostgresInstaller\createTables(), OracleInstaller\doOpenConnection(), getCheckBox(), MssqlInstaller\getConnectForm(), OracleInstaller\getConnectForm(), PostgresInstaller\getInstallUserPermissions(), MssqlInstaller\getLocalSettings(), MysqlInstaller\getLocalSettings(), OracleInstaller\getLocalSettings(), PostgresInstaller\getLocalSettings(), SqliteInstaller\getLocalSettings(), getPasswordBox(), getRadioSet(), MssqlInstaller\getSchemaVars(), MysqlInstaller\getSchemaVars(), OracleInstaller\getSchemaVars(), MssqlInstaller\getSettingsForm(), MysqlInstaller\getSettingsForm(), MysqlInstaller\getTableOptions(), getTextBox(), getWebUserBox(), needsUpgrade(), OracleInstaller\needsUpgrade(), SqliteInstaller\needsUpgrade(), MssqlInstaller\openConnection(), MysqlInstaller\openConnection(), SqliteInstaller\openConnection(), PostgresInstaller\openConnectionToAnyDB(), PostgresInstaller\openConnectionWithParams(), PostgresInstaller\openPgConnection(), populateInterwikiTable(), PostgresInstaller\preInstall(), MssqlInstaller\preUpgrade(), MysqlInstaller\preUpgrade(), PostgresInstaller\preUpgrade(), MssqlInstaller\setupDatabase(), MysqlInstaller\setupDatabase(), PostgresInstaller\setupDatabase(), SqliteInstaller\setupDatabase(), PostgresInstaller\setupPLpgSQL(), PostgresInstaller\setupSchema(), MssqlInstaller\setupUser(), MysqlInstaller\setupUser(), OracleInstaller\setupUser(), PostgresInstaller\setupUser(), stepApplySourceFile(), OracleInstaller\submitConnectForm(), PostgresInstaller\submitConnectForm(), SqliteInstaller\submitConnectForm(), OracleInstaller\submitInstallUserBox(), MssqlInstaller\submitSettingsForm(), MysqlInstaller\submitSettingsForm(), PostgresInstaller\submitSettingsForm(), and submitWebUserBox().
DatabaseInstaller::getWebUserBox | ( | $noCreateMsg = false | ) |
Get a standard web-user fieldset.
string | bool | $noCreateMsg | Message to display instead of the creation checkbox. Set this to false to show a creation checkbox (default). |
Definition at line 679 of file DatabaseInstaller.php.
References $s, getCheckBox(), getPasswordBox(), getTextBox(), getVar(), plain, text, and wfMessage().
Referenced by OracleInstaller\getConnectForm(), MysqlInstaller\getSettingsForm(), and PostgresInstaller\getSettingsForm().
DatabaseInstaller::insertUpdateKeys | ( | ) |
Insert update keys into table to prevent running unneded updates.
Definition at line 258 of file DatabaseInstaller.php.
References stepApplySourceFile().
|
abstract |
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
|
static |
Whether the provided version meets the necessary requirements for this type.
string | $serverVersion | Output of Database::getServerVersion() |
Definition at line 84 of file DatabaseInstaller.php.
References and().
DatabaseInstaller::needsUpgrade | ( | ) |
Determine whether an existing installation of MediaWiki is present in the configured administrative connection.
Returns true if there is such a wiki, false if the database doesn't exist.
Traditionally, this is done by testing for the existence of either the revision table or the cur table.
Reimplemented in OracleInstaller, and SqliteInstaller.
Definition at line 620 of file DatabaseInstaller.php.
References $e, getConnection(), and getVar().
|
abstract |
Open a connection to the database using the administrative user/password currently defined in the session, without any caching.
Returns a status object. On success, the status object will contain a Database object in its value member.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
Referenced by getConnection().
DatabaseInstaller::outputHandler | ( | $string | ) |
Definition at line 765 of file DatabaseInstaller.php.
References and().
DatabaseInstaller::populateInterwikiTable | ( | ) |
Common function for databases that don't understand the MySQLish syntax of interwiki.sql.
Definition at line 728 of file DatabaseInstaller.php.
References $IP, $rows, and(), file, getConnection(), and getVar().
DatabaseInstaller::preInstall | ( | ) |
Allow DB installers a chance to make last-minute changes before installation occurs.
This happens before setupDatabase() or createTables() is called, but long after the constructor. Helpful for things like modifying setup steps :)
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, and PostgresInstaller.
Definition at line 408 of file DatabaseInstaller.php.
DatabaseInstaller::preUpgrade | ( | ) |
Allow DB installers a chance to make checks before upgrade.
Reimplemented in MssqlInstaller, MysqlInstaller, and PostgresInstaller.
Definition at line 414 of file DatabaseInstaller.php.
|
abstract |
Create the database and return a Status object indicating success or failure.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
DatabaseInstaller::setupSchemaVars | ( | ) |
Set appropriate schema variables in the current database connection.
This should be called after any request data has been imported, but before any write operations to the database.
Definition at line 341 of file DatabaseInstaller.php.
References getConnection(), and getSchemaVars().
Referenced by OracleInstaller\createTables(), doUpgrade(), MssqlInstaller\setupDatabase(), MysqlInstaller\setupDatabase(), SqliteInstaller\setupDatabase(), MssqlInstaller\setupUser(), MysqlInstaller\setupUser(), and OracleInstaller\setupUser().
DatabaseInstaller::setVar | ( | $name, | |
$value ) |
Convenience alias for $this->parent->setVar()
string | $name | |
mixed | $value |
Definition at line 500 of file DatabaseInstaller.php.
References $value.
Referenced by MysqlInstaller\getSettingsForm(), MysqlInstaller\preUpgrade(), SqliteInstaller\setupDatabase(), MssqlInstaller\submitConnectForm(), PostgresInstaller\submitConnectForm(), SqliteInstaller\submitConnectForm(), MssqlInstaller\submitSettingsForm(), MysqlInstaller\submitSettingsForm(), PostgresInstaller\submitSettingsForm(), and submitWebUserBox().
DatabaseInstaller::setVarsFromRequest | ( | $varNames | ) |
Convenience function to set variables based on form data.
Assumes that variables containing "password" in the name are (potentially fake) passwords.
array | $varNames |
Definition at line 606 of file DatabaseInstaller.php.
References getName().
Referenced by MssqlInstaller\submitConnectForm(), MysqlInstaller\submitConnectForm(), OracleInstaller\submitConnectForm(), PostgresInstaller\submitConnectForm(), SqliteInstaller\submitConnectForm(), submitInstallUserBox(), MssqlInstaller\submitSettingsForm(), MysqlInstaller\submitSettingsForm(), and submitWebUserBox().
|
private |
Apply a SQL source file to the database as part of running an installation step.
string | $sourceFileMethod | |
string | $stepName | |
bool | $archiveTableMustNotExist |
Definition at line 205 of file DatabaseInstaller.php.
References and(), DBO_DDLMODE, enableLB(), getConnection(), and getVar().
Referenced by createTables(), and insertUpdateKeys().
|
abstract |
Set variables based on the request array, assuming it was submitted via the form returned by getConnectForm().
Validate the connection settings by attempting to connect with them.
If this is called, $this->parent can be assumed to be a WebInstaller.
Reimplemented in MssqlInstaller, MysqlInstaller, OracleInstaller, PostgresInstaller, and SqliteInstaller.
DatabaseInstaller::submitInstallUserBox | ( | ) |
Submit a standard install user fieldset.
Reimplemented in OracleInstaller.
Definition at line 666 of file DatabaseInstaller.php.
References setVarsFromRequest().
Referenced by MysqlInstaller\submitConnectForm(), and PostgresInstaller\submitConnectForm().
DatabaseInstaller::submitSettingsForm | ( | ) |
Set variables based on the request array, assuming it was submitted via the form return by getSettingsForm().
Reimplemented in MssqlInstaller, MysqlInstaller, and PostgresInstaller.
Definition at line 150 of file DatabaseInstaller.php.
DatabaseInstaller::submitWebUserBox | ( | ) |
Submit the form from getWebUserBox().
Definition at line 706 of file DatabaseInstaller.php.
References and(), getVar(), setVar(), and setVarsFromRequest().
Referenced by OracleInstaller\submitConnectForm(), MysqlInstaller\submitSettingsForm(), and PostgresInstaller\submitSettingsForm().
The database connection.
Definition at line 61 of file DatabaseInstaller.php.
Referenced by OracleInstaller\doOpenConnection(), getSqlFilePath(), MssqlInstaller\openConnection(), MysqlInstaller\openConnection(), PostgresInstaller\openConnectionToAnyDB(), and PostgresInstaller\openConnectionWithParams().
|
protected |
Array of MW configuration globals this class uses.
Definition at line 75 of file DatabaseInstaller.php.
Referenced by getGlobalNames().
|
protected |
Internal variables for installation.
Definition at line 68 of file DatabaseInstaller.php.
Referenced by getInternalDefaults().
|
static |
Set by subclasses.
Definition at line 49 of file DatabaseInstaller.php.
|
staticprotected |
Set by subclasses.
Definition at line 54 of file DatabaseInstaller.php.
WebInstaller DatabaseInstaller::$parent |
The Installer object.
Definition at line 44 of file DatabaseInstaller.php.
Referenced by __construct().