MediaWiki
1.28.0
|
Class for setting up the MediaWiki database using Postgres. More...
Public Member Functions | |
commitChanges () | |
createTables () | |
getConnectForm () | |
getConnection () | |
getGlobalDefaults () | |
getLocalSettings () | |
getName () | |
getSettingsForm () | |
isCompiled () | |
openConnection () | |
openConnectionToAnyDB ($user, $password) | |
preInstall () | |
preUpgrade () | |
setupDatabase () | |
setupPLpgSQL () | |
setupSchema () | |
setupUser () | |
submitConnectForm () | |
submitSettingsForm () | |
Public Member Functions inherited from DatabaseInstaller | |
__construct ($parent) | |
Construct and initialise parent. More... | |
checkPrerequisites () | |
Checks for installation prerequisites other than those checked by isCompiled() More... | |
createExtensionTables () | |
Create the tables for each extension the user enabled. More... | |
createTables () | |
Create database tables from scratch. More... | |
doUpgrade () | |
Perform database upgrades. More... | |
enableLB () | |
Set up LBFactory so that wfGetDB() etc. More... | |
getCheckBox ($var, $label, $attribs=[], $helpData="") | |
Get a labelled checkbox to configure a local boolean variable. More... | |
getConnectForm () | |
Get HTML for a web form that configures this database. More... | |
getConnection () | |
Connect to the database using the administrative user/password currently defined in the session. More... | |
getGlobalDefaults () | |
Get a name=>value map of MW configuration globals for the default values. More... | |
getGlobalNames () | |
Get an array of MW configuration globals that will be configured by this class. More... | |
getInstallUserBox () | |
Get a standard install-user fieldset. More... | |
getInternalDefaults () | |
Get a name=>value map of internal variables used during installation. More... | |
getLocalSettings () | |
Get the DBMS-specific options for LocalSettings.php generation. More... | |
getName () | |
Return the internal name, e.g. More... | |
getPasswordBox ($var, $label, $attribs=[], $helpData="") | |
Get a labelled password box to configure a local variable. More... | |
getRadioSet ($params) | |
Get a set of labelled radio buttons. More... | |
getReadableName () | |
Get the internationalised name for this DBMS. More... | |
getSchemaPath ($db) | |
Return a path to the DBMS-specific schema file, otherwise default to tables.sql. More... | |
getSchemaVars () | |
Override this to provide DBMS-specific schema variables, to be substituted into tables.sql and other schema files. More... | |
getSettingsForm () | |
Get HTML for a web form that retrieves settings used for installation. More... | |
getTextBox ($var, $label, $attribs=[], $helpData="") | |
Get a labelled text box to configure a local variable. More... | |
getUpdateKeysPath ($db) | |
Return a path to the DBMS-specific update key file, otherwise default to update-keys.sql. More... | |
getVar ($var, $default=null) | |
Get a variable, taking local defaults into account. More... | |
getWebUserBox ($noCreateMsg=false) | |
Get a standard web-user fieldset. More... | |
insertUpdateKeys () | |
Insert update keys into table to prevent running unneded updates. More... | |
isCompiled () | |
needsUpgrade () | |
Determine whether an existing installation of MediaWiki is present in the configured administrative connection. More... | |
openConnection () | |
Open a connection to the database using the administrative user/password currently defined in the session, without any caching. More... | |
outputHandler ($string) | |
populateInterwikiTable () | |
Common function for databases that don't understand the MySQLish syntax of interwiki.sql. More... | |
preInstall () | |
Allow DB installers a chance to make last-minute changes before installation occurs. More... | |
preUpgrade () | |
Allow DB installers a chance to make checks before upgrade. More... | |
setupDatabase () | |
Create the database and return a Status object indicating success or failure. More... | |
setupSchemaVars () | |
Set appropriate schema variables in the current database connection. More... | |
setVar ($name, $value) | |
Convenience alias for $this->parent->setVar() More... | |
setVarsFromRequest ($varNames) | |
Convenience function to set variables based on form data. More... | |
submitConnectForm () | |
Set variables based on the request array, assuming it was submitted via the form returned by getConnectForm(). More... | |
submitInstallUserBox () | |
Submit a standard install user fieldset. More... | |
submitSettingsForm () | |
Set variables based on the request array, assuming it was submitted via the form return by getSettingsForm(). More... | |
submitWebUserBox () | |
Submit the form from getWebUserBox(). More... | |
Public Attributes | |
$maxRoleSearchDepth = 5 | |
$minimumVersion = '8.3' | |
Public Attributes inherited from DatabaseInstaller | |
Database | $db = null |
The database connection. More... | |
WebInstaller | $parent |
The Installer object. More... | |
Protected Member Functions | |
canCreateAccounts () | |
canCreateObjectsForWebUser () | |
Returns true if the install user is able to create objects owned by the web user, false otherwise. More... | |
getInstallUserPermissions () | |
getPgConnection ($type) | |
Get a special type of connection. More... | |
isRoleMember ($conn, $targetMember, $group, $maxDepth) | |
Recursive helper for canCreateObjectsForWebUser(). More... | |
isSuperUser () | |
openConnectionWithParams ($user, $password, $dbName, $schema) | |
Open a PG connection with given parameters. More... | |
openPgConnection ($type) | |
Get a connection of a specific PostgreSQL-specific type. More... | |
Protected Attributes | |
$globalNames | |
$internalDefaults | |
$pgConns = [] | |
Protected Attributes inherited from DatabaseInstaller | |
array | $globalNames = [] |
Array of MW configuration globals this class uses. More... | |
array | $internalDefaults = [] |
Internal variables for installation. More... | |
Additional Inherited Members | |
Static Protected Member Functions inherited from DatabaseInstaller | |
static | checkExtension ($name) |
Convenience function. More... | |
Class for setting up the MediaWiki database using Postgres.
Definition at line 30 of file PostgresInstaller.php.
|
protected |
Definition at line 301 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 396 of file PostgresInstaller.php.
References $status, getPgConnection(), DatabaseInstaller\getVar(), isRoleMember(), and isSuperUser().
Referenced by submitSettingsForm().
PostgresInstaller::commitChanges | ( | ) |
Definition at line 520 of file PostgresInstaller.php.
References StatusValue\newGood().
PostgresInstaller::createTables | ( | ) |
Definition at line 582 of file PostgresInstaller.php.
References $status, DatabaseInstaller\enableLB(), getConnection(), DatabaseInstaller\getSchemaPath(), and DatabaseInstaller\getVar().
PostgresInstaller::getConnectForm | ( | ) |
Definition at line 58 of file PostgresInstaller.php.
References Html\closeElement(), Html\element(), DatabaseInstaller\getInstallUserBox(), DatabaseInstaller\getTextBox(), Html\openElement(), text, and wfMessage().
PostgresInstaller::getConnection | ( | ) |
Definition at line 133 of file PostgresInstaller.php.
References $status, and getPgConnection().
Referenced by createTables().
PostgresInstaller::getGlobalDefaults | ( | ) |
Definition at line 623 of file PostgresInstaller.php.
|
protected |
Definition at line 284 of file PostgresInstaller.php.
References $status, getPgConnection(), and DatabaseInstaller\getVar().
Referenced by canCreateAccounts(), and isSuperUser().
PostgresInstaller::getLocalSettings | ( | ) |
Definition at line 564 of file PostgresInstaller.php.
References DatabaseInstaller\getVar().
PostgresInstaller::getName | ( | ) |
Definition at line 50 of file PostgresInstaller.php.
|
protected |
Get a special type of connection.
string | $type | See openPgConnection() for details. |
Definition at line 176 of file PostgresInstaller.php.
References $status, $type, DBO_TRX, StatusValue\newGood(), and openPgConnection().
Referenced by canCreateObjectsForWebUser(), getConnection(), getInstallUserPermissions(), setupDatabase(), setupPLpgSQL(), setupSchema(), setupUser(), submitConnectForm(), and submitSettingsForm().
PostgresInstaller::getSettingsForm | ( | ) |
Definition at line 319 of file PostgresInstaller.php.
References $s, canCreateAccounts(), and DatabaseInstaller\getWebUserBox().
PostgresInstaller::isCompiled | ( | ) |
Definition at line 54 of file PostgresInstaller.php.
|
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 422 of file PostgresInstaller.php.
Referenced by canCreateObjectsForWebUser().
|
protected |
Definition at line 310 of file PostgresInstaller.php.
References getInstallUserPermissions().
Referenced by canCreateObjectsForWebUser(), and setupUser().
PostgresInstaller::openConnection | ( | ) |
Definition at line 142 of file PostgresInstaller.php.
References openPgConnection().
PostgresInstaller::openConnectionToAnyDB | ( | $user, | |
$password | |||
) |
Definition at line 249 of file PostgresInstaller.php.
References DatabaseInstaller\$db, $status, $user, as, Database\factory(), DatabaseInstaller\getVar(), and StatusValue\newGood().
Referenced by openPgConnection(), and submitSettingsForm().
|
protected |
Open a PG connection with given parameters.
string | $user | User name |
string | $password | Password |
string | $dbName | Database name |
string | $schema | Database schema |
Definition at line 154 of file PostgresInstaller.php.
References DatabaseInstaller\$db, $e, $status, $user, Database\factory(), DatabaseInstaller\getVar(), and StatusValue\newGood().
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 220 of file PostgresInstaller.php.
References $status, $type, DatabaseInstaller\getVar(), openConnectionToAnyDB(), and openConnectionWithParams().
Referenced by getPgConnection(), and openConnection().
PostgresInstaller::preInstall | ( | ) |
Definition at line 448 of file PostgresInstaller.php.
References DatabaseInstaller\getVar().
PostgresInstaller::preUpgrade | ( | ) |
Definition at line 573 of file PostgresInstaller.php.
References $wgDBpassword, $wgDBuser, DatabaseInstaller\getVar(), and global.
PostgresInstaller::setupDatabase | ( | ) |
Definition at line 474 of file PostgresInstaller.php.
References $status, getPgConnection(), DatabaseInstaller\getVar(), and StatusValue\newGood().
PostgresInstaller::setupPLpgSQL | ( | ) |
Definition at line 631 of file PostgresInstaller.php.
References $e, $status, getPgConnection(), DatabaseInstaller\getVar(), StatusValue\newFatal(), and StatusValue\newGood().
PostgresInstaller::setupSchema | ( | ) |
Definition at line 493 of file PostgresInstaller.php.
References $e, $status, getPgConnection(), DatabaseInstaller\getVar(), StatusValue\newFatal(), and StatusValue\newGood().
PostgresInstaller::setupUser | ( | ) |
Definition at line 526 of file PostgresInstaller.php.
References $e, $status, getPgConnection(), DatabaseInstaller\getVar(), isSuperUser(), StatusValue\newFatal(), and StatusValue\newGood().
PostgresInstaller::submitConnectForm | ( | ) |
Definition at line 84 of file PostgresInstaller.php.
References $status, getPgConnection(), DatabaseInstaller\getVar(), StatusValue\newFatal(), StatusValue\newGood(), DatabaseInstaller\setVar(), DatabaseInstaller\setVarsFromRequest(), and DatabaseInstaller\submitInstallUserBox().
PostgresInstaller::submitSettingsForm | ( | ) |
Definition at line 330 of file PostgresInstaller.php.
References $status, canCreateAccounts(), canCreateObjectsForWebUser(), getPgConnection(), DatabaseInstaller\getVar(), StatusValue\newFatal(), StatusValue\newGood(), openConnectionToAnyDB(), DatabaseInstaller\setVar(), and DatabaseInstaller\submitWebUserBox().
|
protected |
Definition at line 32 of file PostgresInstaller.php.
|
protected |
Definition at line 41 of file PostgresInstaller.php.
PostgresInstaller::$maxRoleSearchDepth = 5 |
Definition at line 46 of file PostgresInstaller.php.
PostgresInstaller::$minimumVersion = '8.3' |
Definition at line 45 of file PostgresInstaller.php.
|
protected |
Definition at line 48 of file PostgresInstaller.php.