MediaWiki REL1_40
|
Class for setting up the MediaWiki database using Postgres. More...
Inherits DatabaseInstaller.
Public Member Functions | |
commitChanges () | |
createManualTables () | |
Create database tables from scratch. | |
createTables () | |
Create database tables from scratch from the automatically generated file. | |
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. | |
getLocalSettings () | |
Get the DBMS-specific options for LocalSettings.php generation. | |
getName () | |
Return the internal name, e.g. | |
getSettingsForm () | |
Get HTML for a web form that retrieves settings used for installation. | |
isCompiled () | |
openConnection () | |
Open a connection to the database using the administrative user/password currently defined in the session, without any caching. | |
openConnectionToAnyDB ( $user, $password) | |
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. | |
setupPLpgSQL () | |
setupSchema () | |
setupUser () | |
submitConnectForm () | |
Set variables based on the request array, assuming it was submitted via the form returned by getConnectForm(). | |
submitSettingsForm () | |
Set variables based on the request array, assuming it was submitted via the form return by getSettingsForm(). | |
Public Member Functions inherited from DatabaseInstaller | |
__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. | |
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. | |
getGeneratedSchemaPath ( $db) | |
Return a path to the DBMS-specific automatically generated schema file. | |
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. | |
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. | |
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 unneeded updates. | |
needsUpgrade () | |
Determine whether an existing installation of MediaWiki is present in the configured administrative connection. | |
outputHandler ( $string) | |
populateInterwikiTable () | |
Common function for databases that don't understand the MySQLish syntax of interwiki.list. | |
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. | |
submitInstallUserBox () | |
Submit a standard install user fieldset. | |
submitWebUserBox () | |
Submit the form from getWebUserBox(). | |
Public Attributes | |
$maxRoleSearchDepth = 5 | |
Public Attributes inherited from DatabaseInstaller | |
Database | $db = null |
The database connection. | |
WebInstaller | $parent |
The Installer object. | |
Static Public Attributes | |
static | $minimumVersion = '10' |
Static Public Attributes inherited from DatabaseInstaller | |
static string | $minimumVersion |
Set by subclasses. | |
Protected Member Functions | |
canCreateAccounts () | |
canCreateObjectsForWebUser () | |
Returns true if the install user is able to create objects owned by the web user, false otherwise. | |
getInstallUserPermissions () | |
getPgConnection ( $type) | |
Get a special type of connection. | |
isRoleMember ( $conn, $targetMember, $group, $maxDepth) | |
Recursive helper for canCreateObjectsForWebUser(). | |
isSuperUser () | |
openConnectionWithParams ( $user, $password, $dbName, $schema) | |
Open a PG connection with given parameters. | |
openPgConnection ( $type) | |
Get a connection of a specific PostgreSQL-specific type. | |
Protected Member Functions inherited from DatabaseInstaller | |
selectDatabase (Database $conn, string $database) | |
Protected Attributes | |
$globalNames | |
$internalDefaults | |
$pgConns = [] | |
Protected Attributes inherited from DatabaseInstaller | |
array | $globalNames = [] |
Array of MW configuration globals this class uses. | |
array | $internalDefaults = [] |
Internal variables for installation. | |
Static Protected Attributes | |
static | $notMinimumVersionMessage = 'config-postgres-old' |
Static Protected Attributes inherited from DatabaseInstaller | |
static string | $notMinimumVersionMessage |
Set by subclasses. | |
Additional Inherited Members | |
Static Public Member Functions inherited from DatabaseInstaller | |
static | meetsMinimumRequirement (IDatabase $conn) |
Whether the provided version meets the necessary requirements for this type. | |
Static Protected Member Functions inherited from DatabaseInstaller | |
static | checkExtension ( $name) |
Convenience function. | |
Class for setting up the MediaWiki database using Postgres.
Definition at line 38 of file PostgresInstaller.php.
|
protected |
Definition at line 313 of file PostgresInstaller.php.
References getInstallUserPermissions().
Referenced by getSettingsForm(), and submitSettingsForm().
|
protected |
Returns true if the install user is able to create objects owned by the web user, false otherwise.
Definition at line 401 of file PostgresInstaller.php.
References getPgConnection(), DatabaseInstaller\getVar(), isRoleMember(), and isSuperUser().
Referenced by submitSettingsForm().
PostgresInstaller::commitChanges | ( | ) |
Definition at line 527 of file PostgresInstaller.php.
PostgresInstaller::createManualTables | ( | ) |
Create database tables from scratch.
Reimplemented from DatabaseInstaller.
Definition at line 641 of file PostgresInstaller.php.
PostgresInstaller::createTables | ( | ) |
Create database tables from scratch from the automatically generated file.
Reimplemented from DatabaseInstaller.
Definition at line 591 of file PostgresInstaller.php.
References DatabaseInstaller\enableLB(), getConnection(), DatabaseInstaller\getGeneratedSchemaPath(), DatabaseInstaller\getSchemaPath(), and DatabaseInstaller\getVar().
PostgresInstaller::getConnectForm | ( | ) |
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 from DatabaseInstaller.
Definition at line 67 of file PostgresInstaller.php.
References DatabaseInstaller\getInstallUserBox(), DatabaseInstaller\getTextBox(), and wfMessage().
PostgresInstaller::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 from DatabaseInstaller.
Definition at line 142 of file PostgresInstaller.php.
References getPgConnection().
Referenced by createTables().
PostgresInstaller::getGlobalDefaults | ( | ) |
Get a name=>value map of MW configuration globals for the default values.
Reimplemented from DatabaseInstaller.
Definition at line 646 of file PostgresInstaller.php.
|
protected |
Definition at line 296 of file PostgresInstaller.php.
References getPgConnection(), and DatabaseInstaller\getVar().
Referenced by canCreateAccounts(), and isSuperUser().
PostgresInstaller::getLocalSettings | ( | ) |
Get the DBMS-specific options for LocalSettings.php generation.
Reimplemented from DatabaseInstaller.
Definition at line 573 of file PostgresInstaller.php.
References DatabaseInstaller\getVar().
PostgresInstaller::getName | ( | ) |
Return the internal name, e.g.
'mysql', or 'sqlite'.
Reimplemented from DatabaseInstaller.
Definition at line 59 of file PostgresInstaller.php.
|
protected |
Get a special type of connection.
string | $type | See openPgConnection() for details. |
Definition at line 187 of file PostgresInstaller.php.
References $type, DBO_TRX, and openPgConnection().
Referenced by canCreateObjectsForWebUser(), getConnection(), getInstallUserPermissions(), setupDatabase(), setupPLpgSQL(), setupSchema(), setupUser(), submitConnectForm(), and submitSettingsForm().
PostgresInstaller::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 from DatabaseInstaller.
Definition at line 323 of file PostgresInstaller.php.
References canCreateAccounts(), and DatabaseInstaller\getWebUserBox().
PostgresInstaller::isCompiled | ( | ) |
Reimplemented from DatabaseInstaller.
Definition at line 63 of file PostgresInstaller.php.
References DatabaseInstaller\checkExtension().
|
protected |
Recursive helper for canCreateObjectsForWebUser().
Database | $conn | |
int | $targetMember | Role ID of the member to look for |
int | $group | Role ID of the group to look for |
int | $maxDepth | Maximum recursive search depth |
Definition at line 427 of file PostgresInstaller.php.
References $res, and isRoleMember().
Referenced by canCreateObjectsForWebUser(), and isRoleMember().
|
protected |
Definition at line 318 of file PostgresInstaller.php.
References getInstallUserPermissions().
Referenced by canCreateObjectsForWebUser(), and setupUser().
PostgresInstaller::openConnection | ( | ) |
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 from DatabaseInstaller.
Definition at line 151 of file PostgresInstaller.php.
References openPgConnection().
PostgresInstaller::openConnectionToAnyDB | ( | $user, | |
$password ) |
Definition at line 260 of file PostgresInstaller.php.
References DatabaseInstaller\$db, and DatabaseInstaller\getVar().
Referenced by openPgConnection(), and submitSettingsForm().
|
protected |
Open a PG connection with given parameters.
string | $user | User name |
string | $password | |
string | $dbName | Database name |
string | $schema | Database schema |
Definition at line 163 of file PostgresInstaller.php.
References DatabaseInstaller\$db, and DatabaseInstaller\getVar().
Referenced by openPgConnection().
|
protected |
Get a connection of a specific PostgreSQL-specific type.
Connections of a given type are cached.
PostgreSQL lacks cross-database operations, so after the new database is created, you need to make a separate connection to connect to that database and add tables to it.
New tables are owned by the user that creates them, and MediaWiki's PostgreSQL support has always assumed that the table owner will be $wgDBuser. So before we create new tables, we either need to either connect as the other user or to execute a SET ROLE command. Using a separate connection for this allows us to avoid accidental cross-module dependencies.
string | $type | The type of connection to get:
|
MWException |
Definition at line 231 of file PostgresInstaller.php.
References $type, DatabaseInstaller\getVar(), openConnectionToAnyDB(), openConnectionWithParams(), and openPgConnection().
Referenced by getPgConnection(), openConnection(), and openPgConnection().
PostgresInstaller::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 from DatabaseInstaller.
Definition at line 453 of file PostgresInstaller.php.
References DatabaseInstaller\getVar().
PostgresInstaller::preUpgrade | ( | ) |
Allow DB installers a chance to make checks before upgrade.
Reimplemented from DatabaseInstaller.
Definition at line 582 of file PostgresInstaller.php.
References $wgDBpassword, $wgDBuser, and DatabaseInstaller\getVar().
PostgresInstaller::setupDatabase | ( | ) |
Create the database and return a Status object indicating success or failure.
Reimplemented from DatabaseInstaller.
Definition at line 479 of file PostgresInstaller.php.
References getPgConnection(), and DatabaseInstaller\getVar().
PostgresInstaller::setupPLpgSQL | ( | ) |
Definition at line 654 of file PostgresInstaller.php.
References getPgConnection(), and DatabaseInstaller\getVar().
PostgresInstaller::setupSchema | ( | ) |
Definition at line 498 of file PostgresInstaller.php.
References getPgConnection(), and DatabaseInstaller\getVar().
PostgresInstaller::setupUser | ( | ) |
Definition at line 533 of file PostgresInstaller.php.
References getPgConnection(), DatabaseInstaller\getVar(), and isSuperUser().
PostgresInstaller::submitConnectForm | ( | ) |
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 from DatabaseInstaller.
Definition at line 93 of file PostgresInstaller.php.
References getPgConnection(), DatabaseInstaller\getVar(), DatabaseInstaller\setVar(), DatabaseInstaller\setVarsFromRequest(), and DatabaseInstaller\submitInstallUserBox().
PostgresInstaller::submitSettingsForm | ( | ) |
Set variables based on the request array, assuming it was submitted via the form return by getSettingsForm().
Reimplemented from DatabaseInstaller.
Definition at line 334 of file PostgresInstaller.php.
References canCreateAccounts(), canCreateObjectsForWebUser(), getPgConnection(), DatabaseInstaller\getVar(), openConnectionToAnyDB(), DatabaseInstaller\setVar(), and DatabaseInstaller\submitWebUserBox().
|
protected |
Definition at line 40 of file PostgresInstaller.php.
|
protected |
Definition at line 49 of file PostgresInstaller.php.
PostgresInstaller::$maxRoleSearchDepth = 5 |
Definition at line 55 of file PostgresInstaller.php.
|
static |
Definition at line 53 of file PostgresInstaller.php.
|
staticprotected |
Definition at line 54 of file PostgresInstaller.php.
|
protected |
Definition at line 57 of file PostgresInstaller.php.