1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
-- Patch to add the sites and site_identifiers tables.
-- Licence: GNU GPL v2+
-- Author: Jeroen De Dauw < jeroendedauw@gmail.com >
-- Holds all the sites known to the wiki.
CREATE TABLE IF NOT EXISTS /*_*/sites (
-- Numeric id of the site
site_id INT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT,
-- Global identifier for the site, ie 'enwiktionary'
site_global_key varbinary(32) NOT NULL,
-- Type of the site, ie 'mediawiki'
site_type varbinary(32) NOT NULL,
-- Group of the site, ie 'wikipedia'
site_group varbinary(32) NOT NULL,
-- Source of the site data, ie 'local', 'wikidata', 'my-magical-repo'
site_source varbinary(32) NOT NULL,
-- Language code of the sites primary language.
site_language varbinary(32) NOT NULL,
-- 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_protocol varbinary(32) NOT NULL,
-- 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_domain VARCHAR(255) NOT NULL,
-- Type dependent site data.
site_data BLOB NOT NULL,
-- If site.tld/path/key:pageTitle should forward users to the page on
-- the actual site, where "key" is the local identifier.
site_forward bool NOT NULL,
-- Type dependent site config.
-- For instance if template transclusion should be allowed if it's a MediaWiki.
site_config BLOB NOT NULL
) /*$wgDBTableOptions*/;
CREATE UNIQUE INDEX /*i*/sites_global_key ON /*_*/sites (site_global_key);
CREATE INDEX /*i*/sites_type ON /*_*/sites (site_type);
CREATE INDEX /*i*/sites_group ON /*_*/sites (site_group);
CREATE INDEX /*i*/sites_source ON /*_*/sites (site_source);
CREATE INDEX /*i*/sites_language ON /*_*/sites (site_language);
CREATE INDEX /*i*/sites_protocol ON /*_*/sites (site_protocol);
CREATE INDEX /*i*/sites_domain ON /*_*/sites (site_domain);
CREATE INDEX /*i*/sites_forward ON /*_*/sites (site_forward);
-- Links local site identifiers to their corresponding site.
CREATE TABLE IF NOT EXISTS /*_*/site_identifiers (
-- Key on site.site_id
si_site INT UNSIGNED NOT NULL,
-- local key type, ie 'interwiki' or 'langlink'
si_type varbinary(32) NOT NULL,
-- local key value, ie 'en' or 'wiktionary'
si_key varbinary(32) NOT NULL
) /*$wgDBTableOptions*/;
CREATE UNIQUE INDEX /*i*/site_ids_type ON /*_*/site_identifiers (si_type, si_key);
CREATE INDEX /*i*/site_ids_site ON /*_*/site_identifiers (si_site);
CREATE INDEX /*i*/site_ids_key ON /*_*/site_identifiers (si_key);
|