Jump to content


From mediawiki.org
(Redirected from $wgDBprefix)
Database settings: $wgDBprefix
Table name prefix.
Introduced in version:1.4.0
Removed in version:still in use
Allowed values:(string)
Default value:''


Table name prefix. This should be alphanumeric, contain neither spaces nor hyphens, and end in "_". If you only have access to a single database and wish to install more than one version of MediaWiki, or have other applications that also use the database, you can give the table names a unique prefix to stop any naming conflicts or confusion.

For example, if you use the prefix 'wiki_' then the table 'page' will be named 'wiki_page' instead.

You need to set this at the time of initial configuration, or manually change the table names at a later date. Changing this setting does not automatically update the names of the tables in your database.

This setting is NOT used if your database is PostgreSQL: instead, schemas are used (see $wgDBmwschema ).[1]

Common value[edit]

Many installers set the database table prefix "$wgDBprefix" to "mw_" by default.[2][3][4]

Caution! Caution:
  • Do not change $wgDBmwschema after Setup.php has been included. Note: Setup.php initializes various paths, includes some common files, starts sessions, and performs various other setup tasks for a request. It is not related to the installation or setup of MediaWiki.
  • Only files in includes/db/ should use $wgDBmwschema, while everything else should use the dbSchema() method provided by the Wikimedia\Rdbms\IDatabase interface or extract it from the getDomainId() method in either the Wikimedia\Rdbms\ILoadBalancer or the Wikimedia\Rdbms\ILBFactory interface. The DatabaseDomain class can extract such components from a database domain ID.
  • If you configure $wgDBservers or $wgLBFactoryConf, you still need to define $wgDBname, $wgDBmwschema (if applicable for the DB type), and $wgDBprefix (if applicable for the DB type). The combination of $wgDBname, $wgDBmwschema, and $wgDBprefix define the current wiki's database domain. This is also called the local database domain. The 'dbname' and 'tablePrefix' settings in $wgDBservers and $wgLBFactoryConf only define the default DB/prefix when a connection is requested with DatabaseDomain::newUnspecified()->getId() (the empty string) as the database domain, e.g. wfGetDB( DB_REPLICA, [], '' ). Note that functions calls like wfGetDB( DB_REPLICA ), which simply omit the database domain, are assumed to refer to the local database domain.


See also[edit]