Manual:sites table

From MediaWiki.org
Jump to: navigation, search
Translate this page; This page contains changes which are not marked for translation.

Other languages:
English • ‎español • ‎日本語 • ‎русский • ‎中文
Manual:ContentsManual:Contents MediaWiki database layoutManual:Database layout sites table


The sites table, introduced in MediaWiki 1.21MediaWiki 1.21 in May 2013, holds all the sites known to the wiki.

Fields[edit]

site_id[edit]

MediaWiki version: 1.21

Numeric id of the site. This is an auto-incrementing primary key.

site_global_key[edit]

MediaWiki version: 1.21

Global identifier for the site, ie 'enwiktionary'

site_type[edit]

MediaWiki version: 1.21

Type of the site, ie 'mediawiki'

site_group[edit]

MediaWiki version: 1.21

Group of the site, ie 'wikipedia'

site_source[edit]

MediaWiki version: 1.21

Source of the site data, ie 'local', 'wikidata', 'my-magical-repo'

site_language[edit]

MediaWiki version: 1.21

Language code of the sites primary language.

site_protocol[edit]

MediaWiki version: 1.21

Protocol of the site, ie 'http://', 'irc://', '//'. This field is an index for lookups and is build from type specific data in site_data.

site_domain[edit]

MediaWiki version: 1.21

Domain of the site in reverse order, ie 'org.mediawiki.www.'. This field is an index for lookups and is build from type specific data in site_data.

site_data[edit]

MediaWiki version: 1.21

Type dependent site data.

site_forward[edit]

MediaWiki version: 1.21

If site.tld/path/key:pageTitle should forward users to the page on the actual site, where "key" is the local identifier.

site_config[edit]

MediaWiki version: 1.21

Type dependent site config. For instance if template transclusion should be allowed if it's a MediaWiki.

Schema summary[edit]

MediaWiki version: 1.21

DESCRIBE sites;

+-----------------+------------------+------+-----+---------+----------------+
| Field           | Type             | Null | Key | Default | Extra          |
+-----------------+------------------+------+-----+---------+----------------+
| site_id         | int(10) unsigned | NO   | PRI | NULL    | AUTO_INCREMENT |
| site_global_key | varbinary(32)    | NO   | UNI | NULL    |                |
| site_type       | varbinary(32)    | NO   | MUL | NULL    |                |
| site_group      | varbinary(32)    | NO   | MUL | NULL    |                |
| site_source     | varbinary(32)    | NO   | MUL | NULL    |                |
| site_language   | varbinary(32)    | NO   | MUL | NULL    |                |
| site_protocol   | varbinary(32)    | NO   | MUL | NULL    |                |
| site_domain     | varchar(255)     | NO   | MUL | NULL    |                |
| site_data       | blob             | NO   |     | NULL    |                |
| site_forward    | bool             | NO   | MUL | NULL    |                |
| site_config     | blob             | NO   |     | NULL    |                |
+-----------------+------------------+------+-----+---------+----------------+

Managing the sites table[edit]

The sites table is shipped without data for a new MediaWiki installation.

Importing sites table from another wiki[edit]

There're two ways of populating the sites table using another wiki as a source. If you've access to the other wikis server, you can run the exportSite.php maintenance script and import the data using the importSites.php maintenance script of your MediaWiki installation.

If you don't have access to the other wikis server but the other MediaWiki installation has the SiteMatrix extension installed, you can use a maintenance script from the Wikibase extension (populateSitesTable.php) to import all sites from the other wiki.

Adding a new site[edit]

If you want to add a new site into your MediaWiki's site table, you can use the maintenance script addSite.php.

Insert wiki family (using Script)[edit]

Sometimes, you have to add your wikis in this table. You can use this code:

$sites = array();
foreach ( array( 'en', 'fr' ) as $langCode ) {
     $site = new MediaWikiSite();
     $site->setGlobalId( $langCode . 'mywiki' );
     $site->setGroup( 'mywiki' );
     $site->setLanguageCode( $langCode );
     $site->addInterwikiId( $langCode );
     $site->addNavigationId( $langCode );
     $site->setPath( MediaWikiSite::PATH_PAGE, "http://$langCode.mywiki.org/wiki/$1" );
     $site->setPath( MediaWikiSite::PATH_FILE, "http://$langCode.mywiki.org/w/$1" );           
     $sites[] = $site;
}
          
$sitesTable = SiteSQLStore::newInstance();
$sitesTable->clear();
$sitesTable->saveSites( $sites );
DatabasesManual:Database layout Engines: MySQL/MariaDBManual:MySQLOracleManual:OraclePostgreSQLManual:PostgreSQLSQLiteManual:SQLiteSQL ServerManual:Microsoft SQL Server

Technical documentation: SchemaManual:Database layout (tablesCategory:MediaWiki database tables) – API property associationsAPI:Database field and API property associationsField prefixesDatabase field prefixesPrimary key storage in other fieldsManual:Primary key storage in other fieldsWikimedia extension tablesCategory:Wikimedia extension database tables
Configuration: SettingsManual:Configuration_settings#Database_settingsSharingManual:Shared database
Development: AccessManual:Database accessOptimizationDatabase optimizationPolicyDevelopment policy#Database_patchesUpdaterManual:DatabaseUpdater.phpExtension schema updatesManual:Hooks/LoadExtensionSchemaUpdatesPatch fileManual:SQL patch file

Core tables: archivebot_passwordscategorycategorylinkschange_tagconfigexternallinksfilearchivehitcounterimageimagelinksinterwikiiwlinksipblocksjobl10n_cachelanglinkslogginglog_searchmsg_resourcemsg_resource_linksmodule_depsobjectcacheoldimagepagepagelinkspage_propspage_restrictionsprotected_titlesquerycachequerycachetwoquerycache_inforecentchangesredirectrevisionsearchindexsitessite_identifiers - site_statstag_summarytemplatelinkstexttranscacheupdateloguploadstashuseruser_former_groupsuser_groupsuser_newtalkuser_propertiestag_summaryvalid_tagwatchlist