1 -- This is a copy of MediaWiki 1.20 schema shared by MySQL and SQLite.
2 -- It is used for updater testing. Comments are stripped to decrease
3 -- file size, as we don't need to maintain it.
5 CREATE TABLE /*_*/user (
6 user_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
7 user_name
varchar(255) binary NOT NULL default '',
8 user_real_name
varchar(255) binary NOT NULL default '',
9 user_password tinyblob
NOT NULL,
10 user_newpassword tinyblob
NOT NULL,
11 user_newpass_time
binary(14),
12 user_email tinytext
NOT NULL,
13 user_touched
binary(14) NOT NULL default '',
14 user_token
binary(32) NOT NULL default '',
15 user_email_authenticated
binary(14),
16 user_email_token
binary(32),
17 user_email_token_expires
binary(14),
18 user_registration
binary(14),
20 ) /*$wgDBTableOptions*/;
21 CREATE UNIQUE INDEX /*i*/user_name
ON /*_*/user (user_name
);
22 CREATE INDEX /*i*/user_email_token
ON /*_*/user (user_email_token
);
23 CREATE INDEX /*i*/user_email
ON /*_*/user (user_email(50));
24 CREATE TABLE /*_*/user_groups (
25 ug_user
int unsigned
NOT NULL default 0,
26 ug_group
varbinary(32) NOT NULL default ''
27 ) /*$wgDBTableOptions*/;
28 CREATE UNIQUE INDEX /*i*/ug_user_group
ON /*_*/user_groups (ug_user
,ug_group
);
29 CREATE INDEX /*i*/ug_group
ON /*_*/user_groups (ug_group
);
30 CREATE TABLE /*_*/user_former_groups (
31 ufg_user
int unsigned
NOT NULL default 0,
32 ufg_group
varbinary(32) NOT NULL default ''
33 ) /*$wgDBTableOptions*/;
34 CREATE UNIQUE INDEX /*i*/ufg_user_group
ON /*_*/user_former_groups (ufg_user
,ufg_group
);
35 CREATE TABLE /*_*/user_newtalk (
36 user_id
int NOT NULL default 0,
37 user_ip
varbinary(40) NOT NULL default '',
38 user_last_timestamp
varbinary(14) NULL default NULL
39 ) /*$wgDBTableOptions*/;
40 CREATE INDEX /*i*/un_user_id
ON /*_*/user_newtalk (user_id
);
41 CREATE INDEX /*i*/un_user_ip
ON /*_*/user_newtalk (user_ip
);
42 CREATE TABLE /*_*/user_properties (
44 up_property
varbinary(255) NOT NULL,
46 ) /*$wgDBTableOptions*/;
47 CREATE UNIQUE INDEX /*i*/user_properties_user_property
ON /*_*/user_properties (up_user
,up_property
);
48 CREATE INDEX /*i*/user_properties_property
ON /*_*/user_properties (up_property
);
49 CREATE TABLE /*_*/page (
50 page_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
51 page_namespace
int NOT NULL,
52 page_title
varchar(255) binary NOT NULL,
53 page_restrictions tinyblob
NOT NULL,
54 page_counter
bigint unsigned
NOT NULL default 0,
55 page_is_redirect tinyint unsigned
NOT NULL default 0,
56 page_is_new tinyint unsigned
NOT NULL default 0,
57 page_random
real unsigned
NOT NULL,
58 page_touched
binary(14) NOT NULL default '',
59 page_latest
int unsigned
NOT NULL,
60 page_len
int unsigned
NOT NULL
61 ) /*$wgDBTableOptions*/;
62 CREATE UNIQUE INDEX /*i*/name_title
ON /*_*/page (page_namespace
,page_title
);
63 CREATE INDEX /*i*/page_random
ON /*_*/page (page_random
);
64 CREATE INDEX /*i*/page_len
ON /*_*/page (page_len
);
65 CREATE INDEX /*i*/page_redirect_namespace_len
ON /*_*/page (page_is_redirect
, page_namespace
, page_len
);
66 CREATE TABLE /*_*/revision (
67 rev_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
68 rev_page
int unsigned
NOT NULL,
69 rev_text_id
int unsigned
NOT NULL,
70 rev_comment tinyblob
NOT NULL,
71 rev_user
int unsigned
NOT NULL default 0,
72 rev_user_text
varchar(255) binary NOT NULL default '',
73 rev_timestamp
binary(14) NOT NULL default '',
74 rev_minor_edit tinyint unsigned
NOT NULL default 0,
75 rev_deleted tinyint unsigned
NOT NULL default 0,
77 rev_parent_id
int unsigned
default NULL,
78 rev_sha1
varbinary(32) NOT NULL default ''
79 ) /*$wgDBTableOptions*/ MAX_ROWS
=10000000 AVG_ROW_LENGTH
=1024;
80 CREATE UNIQUE INDEX /*i*/rev_page_id
ON /*_*/revision (rev_page
, rev_id
);
81 CREATE INDEX /*i*/rev_timestamp
ON /*_*/revision (rev_timestamp
);
82 CREATE INDEX /*i*/page_timestamp
ON /*_*/revision (rev_page
,rev_timestamp
);
83 CREATE INDEX /*i*/user_timestamp
ON /*_*/revision (rev_user
,rev_timestamp
);
84 CREATE INDEX /*i*/usertext_timestamp
ON /*_*/revision (rev_user_text
,rev_timestamp
);
85 CREATE INDEX /*i*/page_user_timestamp
ON /*_*/revision (rev_page
,rev_user
,rev_timestamp
);
86 CREATE TABLE /*_*/text (
87 old_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
88 old_text mediumblob
NOT NULL,
89 old_flags tinyblob
NOT NULL
90 ) /*$wgDBTableOptions*/ MAX_ROWS
=10000000 AVG_ROW_LENGTH
=10240;
91 CREATE TABLE /*_*/archive (
92 ar_namespace
int NOT NULL default 0,
93 ar_title
varchar(255) binary NOT NULL default '',
94 ar_text mediumblob
NOT NULL,
95 ar_comment tinyblob
NOT NULL,
96 ar_user
int unsigned
NOT NULL default 0,
97 ar_user_text
varchar(255) binary NOT NULL,
98 ar_timestamp
binary(14) NOT NULL default '',
99 ar_minor_edit tinyint
NOT NULL default 0,
100 ar_flags tinyblob
NOT NULL,
101 ar_rev_id
int unsigned
,
102 ar_text_id
int unsigned
,
103 ar_deleted tinyint unsigned
NOT NULL default 0,
105 ar_page_id
int unsigned
,
106 ar_parent_id
int unsigned
default NULL,
107 ar_sha1
varbinary(32) NOT NULL default ''
108 ) /*$wgDBTableOptions*/;
109 CREATE INDEX /*i*/name_title_timestamp
ON /*_*/archive (ar_namespace
,ar_title
,ar_timestamp
);
110 CREATE INDEX /*i*/ar_usertext_timestamp
ON /*_*/archive (ar_user_text
,ar_timestamp
);
111 CREATE INDEX /*i*/ar_revid
ON /*_*/archive (ar_rev_id
);
112 CREATE TABLE /*_*/pagelinks (
113 pl_from
int unsigned
NOT NULL default 0,
114 pl_namespace
int NOT NULL default 0,
115 pl_title
varchar(255) binary NOT NULL default ''
116 ) /*$wgDBTableOptions*/;
117 CREATE UNIQUE INDEX /*i*/pl_from
ON /*_*/pagelinks (pl_from
,pl_namespace
,pl_title
);
118 CREATE UNIQUE INDEX /*i*/pl_namespace
ON /*_*/pagelinks (pl_namespace
,pl_title
,pl_from
);
119 CREATE TABLE /*_*/templatelinks (
120 tl_from
int unsigned
NOT NULL default 0,
121 tl_namespace
int NOT NULL default 0,
122 tl_title
varchar(255) binary NOT NULL default ''
123 ) /*$wgDBTableOptions*/;
124 CREATE UNIQUE INDEX /*i*/tl_from
ON /*_*/templatelinks (tl_from
,tl_namespace
,tl_title
);
125 CREATE UNIQUE INDEX /*i*/tl_namespace
ON /*_*/templatelinks (tl_namespace
,tl_title
,tl_from
);
126 CREATE TABLE /*_*/imagelinks (
127 il_from
int unsigned
NOT NULL default 0,
128 il_to
varchar(255) binary NOT NULL default ''
129 ) /*$wgDBTableOptions*/;
130 CREATE UNIQUE INDEX /*i*/il_from
ON /*_*/imagelinks (il_from
,il_to
);
131 CREATE UNIQUE INDEX /*i*/il_to
ON /*_*/imagelinks (il_to
,il_from
);
132 CREATE TABLE /*_*/categorylinks (
133 cl_from
int unsigned
NOT NULL default 0,
134 cl_to
varchar(255) binary NOT NULL default '',
135 cl_sortkey
varbinary(230) NOT NULL default '',
136 cl_sortkey_prefix
varchar(255) binary NOT NULL default '',
137 cl_timestamp
timestamp NOT NULL,
138 cl_collation
varbinary(32) NOT NULL default '',
139 cl_type
ENUM('page', 'subcat', 'file') NOT NULL default 'page'
140 ) /*$wgDBTableOptions*/;
141 CREATE UNIQUE INDEX /*i*/cl_from
ON /*_*/categorylinks (cl_from
,cl_to
);
142 CREATE INDEX /*i*/cl_sortkey
ON /*_*/categorylinks (cl_to
,cl_type
,cl_sortkey
,cl_from
);
143 CREATE INDEX /*i*/cl_timestamp
ON /*_*/categorylinks (cl_to
,cl_timestamp
);
144 CREATE INDEX /*i*/cl_collation
ON /*_*/categorylinks (cl_collation
);
145 CREATE TABLE /*_*/category (
146 cat_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
147 cat_title
varchar(255) binary NOT NULL,
148 cat_pages
int signed
NOT NULL default 0,
149 cat_subcats
int signed
NOT NULL default 0,
150 cat_files
int signed
NOT NULL default 0
151 ) /*$wgDBTableOptions*/;
152 CREATE UNIQUE INDEX /*i*/cat_title
ON /*_*/category (cat_title
);
153 CREATE INDEX /*i*/cat_pages
ON /*_*/category (cat_pages
);
154 CREATE TABLE /*_*/externallinks (
155 el_from
int unsigned
NOT NULL default 0,
157 el_index
blob NOT NULL
158 ) /*$wgDBTableOptions*/;
159 CREATE INDEX /*i*/el_from
ON /*_*/externallinks (el_from
, el_to(40));
160 CREATE INDEX /*i*/el_to
ON /*_*/externallinks (el_to(60), el_from
);
161 CREATE INDEX /*i*/el_index
ON /*_*/externallinks (el_index(60));
162 CREATE TABLE /*_*/external_user (
163 eu_local_id
int unsigned
NOT NULL PRIMARY KEY,
164 eu_external_id
varchar(255) binary NOT NULL
165 ) /*$wgDBTableOptions*/;
166 CREATE UNIQUE INDEX /*i*/eu_external_id
ON /*_*/external_user (eu_external_id
);
167 CREATE TABLE /*_*/langlinks (
168 ll_from
int unsigned
NOT NULL default 0,
169 ll_lang
varbinary(20) NOT NULL default '',
170 ll_title
varchar(255) binary NOT NULL default ''
171 ) /*$wgDBTableOptions*/;
172 CREATE UNIQUE INDEX /*i*/ll_from
ON /*_*/langlinks (ll_from
, ll_lang
);
173 CREATE INDEX /*i*/ll_lang
ON /*_*/langlinks (ll_lang
, ll_title
);
174 CREATE TABLE /*_*/iwlinks (
175 iwl_from
int unsigned
NOT NULL default 0,
176 iwl_prefix
varbinary(20) NOT NULL default '',
177 iwl_title
varchar(255) binary NOT NULL default ''
178 ) /*$wgDBTableOptions*/;
179 CREATE UNIQUE INDEX /*i*/iwl_from
ON /*_*/iwlinks (iwl_from
, iwl_prefix
, iwl_title
);
180 CREATE UNIQUE INDEX /*i*/iwl_prefix_title_from
ON /*_*/iwlinks (iwl_prefix
, iwl_title
, iwl_from
);
181 CREATE TABLE /*_*/site_stats (
182 ss_row_id
int unsigned
NOT NULL,
183 ss_total_views
bigint unsigned
default 0,
184 ss_total_edits
bigint unsigned
default 0,
185 ss_good_articles
bigint unsigned
default 0,
186 ss_total_pages
bigint default '-1',
187 ss_users
bigint default '-1',
188 ss_active_users
bigint default '-1',
189 ss_admins
int default '-1',
190 ss_images
int default 0
191 ) /*$wgDBTableOptions*/;
192 CREATE UNIQUE INDEX /*i*/ss_row_id
ON /*_*/site_stats (ss_row_id
);
193 CREATE TABLE /*_*/hitcounter (
194 hc_id
int unsigned
NOT NULL
195 ) ENGINE
=HEAP MAX_ROWS
=25000;
196 CREATE TABLE /*_*/ipblocks (
197 ipb_id
int NOT NULL PRIMARY KEY AUTO_INCREMENT
,
198 ipb_address tinyblob
NOT NULL,
199 ipb_user
int unsigned
NOT NULL default 0,
200 ipb_by
int unsigned
NOT NULL default 0,
201 ipb_by_text
varchar(255) binary NOT NULL default '',
202 ipb_reason tinyblob
NOT NULL,
203 ipb_timestamp
binary(14) NOT NULL default '',
204 ipb_auto bool
NOT NULL default 0,
205 ipb_anon_only bool
NOT NULL default 0,
206 ipb_create_account bool
NOT NULL default 1,
207 ipb_enable_autoblock bool
NOT NULL default '1',
208 ipb_expiry
varbinary(14) NOT NULL default '',
209 ipb_range_start tinyblob
NOT NULL,
210 ipb_range_end tinyblob
NOT NULL,
211 ipb_deleted bool
NOT NULL default 0,
212 ipb_block_email bool
NOT NULL default 0,
213 ipb_allow_usertalk bool
NOT NULL default 0,
214 ipb_parent_block_id
int default NULL
215 ) /*$wgDBTableOptions*/;
216 CREATE UNIQUE INDEX /*i*/ipb_address
ON /*_*/ipblocks (ipb_address(255), ipb_user
, ipb_auto
, ipb_anon_only
);
217 CREATE INDEX /*i*/ipb_user
ON /*_*/ipblocks (ipb_user
);
218 CREATE INDEX /*i*/ipb_range
ON /*_*/ipblocks (ipb_range_start(8), ipb_range_end(8));
219 CREATE INDEX /*i*/ipb_timestamp
ON /*_*/ipblocks (ipb_timestamp
);
220 CREATE INDEX /*i*/ipb_expiry
ON /*_*/ipblocks (ipb_expiry
);
221 CREATE INDEX /*i*/ipb_parent_block_id
ON /*_*/ipblocks (ipb_parent_block_id
);
222 CREATE TABLE /*_*/image (
223 img_name
varchar(255) binary NOT NULL default '' PRIMARY KEY,
224 img_size
int unsigned
NOT NULL default 0,
225 img_width
int NOT NULL default 0,
226 img_height
int NOT NULL default 0,
227 img_metadata mediumblob
NOT NULL,
228 img_bits
int NOT NULL default 0,
229 img_media_type
ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
230 img_major_mime
ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
231 img_minor_mime
varbinary(100) NOT NULL default "unknown",
232 img_description tinyblob
NOT NULL,
233 img_user
int unsigned
NOT NULL default 0,
234 img_user_text
varchar(255) binary NOT NULL,
235 img_timestamp
varbinary(14) NOT NULL default '',
236 img_sha1
varbinary(32) NOT NULL default ''
237 ) /*$wgDBTableOptions*/;
238 CREATE INDEX /*i*/img_usertext_timestamp
ON /*_*/image (img_user_text
,img_timestamp
);
239 CREATE INDEX /*i*/img_size
ON /*_*/image (img_size
);
240 CREATE INDEX /*i*/img_timestamp
ON /*_*/image (img_timestamp
);
241 CREATE INDEX /*i*/img_sha1
ON /*_*/image (img_sha1
);
242 CREATE TABLE /*_*/oldimage (
243 oi_name
varchar(255) binary NOT NULL default '',
244 oi_archive_name
varchar(255) binary NOT NULL default '',
245 oi_size
int unsigned
NOT NULL default 0,
246 oi_width
int NOT NULL default 0,
247 oi_height
int NOT NULL default 0,
248 oi_bits
int NOT NULL default 0,
249 oi_description tinyblob
NOT NULL,
250 oi_user
int unsigned
NOT NULL default 0,
251 oi_user_text
varchar(255) binary NOT NULL,
252 oi_timestamp
binary(14) NOT NULL default '',
253 oi_metadata mediumblob
NOT NULL,
254 oi_media_type
ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
255 oi_major_mime
ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") NOT NULL default "unknown",
256 oi_minor_mime
varbinary(100) NOT NULL default "unknown",
257 oi_deleted tinyint unsigned
NOT NULL default 0,
258 oi_sha1
varbinary(32) NOT NULL default ''
259 ) /*$wgDBTableOptions*/;
260 CREATE INDEX /*i*/oi_usertext_timestamp
ON /*_*/oldimage (oi_user_text
,oi_timestamp
);
261 CREATE INDEX /*i*/oi_name_timestamp
ON /*_*/oldimage (oi_name
,oi_timestamp
);
262 CREATE INDEX /*i*/oi_name_archive_name
ON /*_*/oldimage (oi_name
,oi_archive_name(14));
263 CREATE INDEX /*i*/oi_sha1
ON /*_*/oldimage (oi_sha1
);
264 CREATE TABLE /*_*/filearchive (
265 fa_id
int NOT NULL PRIMARY KEY AUTO_INCREMENT
,
266 fa_name
varchar(255) binary NOT NULL default '',
267 fa_archive_name
varchar(255) binary default '',
268 fa_storage_group
varbinary(16),
269 fa_storage_key
varbinary(64) default '',
271 fa_deleted_timestamp
binary(14) default '',
272 fa_deleted_reason
text,
273 fa_size
int unsigned
default 0,
274 fa_width
int default 0,
275 fa_height
int default 0,
276 fa_metadata mediumblob
,
277 fa_bits
int default 0,
278 fa_media_type
ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
279 fa_major_mime
ENUM("unknown", "application", "audio", "image", "text", "video", "message", "model", "multipart") default "unknown",
280 fa_minor_mime
varbinary(100) default "unknown",
281 fa_description tinyblob
,
282 fa_user
int unsigned
default 0,
283 fa_user_text
varchar(255) binary,
284 fa_timestamp
binary(14) default '',
285 fa_deleted tinyint unsigned
NOT NULL default 0
286 ) /*$wgDBTableOptions*/;
287 CREATE INDEX /*i*/fa_name
ON /*_*/filearchive (fa_name
, fa_timestamp
);
288 CREATE INDEX /*i*/fa_storage_group
ON /*_*/filearchive (fa_storage_group
, fa_storage_key
);
289 CREATE INDEX /*i*/fa_deleted_timestamp
ON /*_*/filearchive (fa_deleted_timestamp
);
290 CREATE INDEX /*i*/fa_user_timestamp
ON /*_*/filearchive (fa_user_text
,fa_timestamp
);
291 CREATE TABLE /*_*/uploadstash (
292 us_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
293 us_user
int unsigned
NOT NULL,
294 us_key
varchar(255) NOT NULL,
295 us_orig_path
varchar(255) NOT NULL,
296 us_path
varchar(255) NOT NULL,
297 us_source_type
varchar(50),
298 us_timestamp
varbinary(14) NOT NULL,
299 us_status
varchar(50) NOT NULL,
300 us_chunk_inx
int unsigned
NULL,
301 us_size
int unsigned
NOT NULL,
302 us_sha1
varchar(31) NOT NULL,
303 us_mime
varchar(255),
304 us_media_type
ENUM("UNKNOWN", "BITMAP", "DRAWING", "AUDIO", "VIDEO", "MULTIMEDIA", "OFFICE", "TEXT", "EXECUTABLE", "ARCHIVE") default NULL,
305 us_image_width
int unsigned
,
306 us_image_height
int unsigned
,
307 us_image_bits
smallint unsigned
308 ) /*$wgDBTableOptions*/;
309 CREATE INDEX /*i*/us_user
ON /*_*/uploadstash (us_user
);
310 CREATE UNIQUE INDEX /*i*/us_key
ON /*_*/uploadstash (us_key
);
311 CREATE INDEX /*i*/us_timestamp
ON /*_*/uploadstash (us_timestamp
);
312 CREATE TABLE /*_*/recentchanges (
313 rc_id
int NOT NULL PRIMARY KEY AUTO_INCREMENT
,
314 rc_timestamp
varbinary(14) NOT NULL default '',
315 rc_cur_time
varbinary(14) NOT NULL default '',
316 rc_user
int unsigned
NOT NULL default 0,
317 rc_user_text
varchar(255) binary NOT NULL,
318 rc_namespace
int NOT NULL default 0,
319 rc_title
varchar(255) binary NOT NULL default '',
320 rc_comment
varchar(255) binary NOT NULL default '',
321 rc_minor tinyint unsigned
NOT NULL default 0,
322 rc_bot tinyint unsigned
NOT NULL default 0,
323 rc_new tinyint unsigned
NOT NULL default 0,
324 rc_cur_id
int unsigned
NOT NULL default 0,
325 rc_this_oldid
int unsigned
NOT NULL default 0,
326 rc_last_oldid
int unsigned
NOT NULL default 0,
327 rc_type tinyint unsigned
NOT NULL default 0,
328 rc_moved_to_ns tinyint unsigned
NOT NULL default 0,
329 rc_moved_to_title
varchar(255) binary NOT NULL default '',
330 rc_patrolled tinyint unsigned
NOT NULL default 0,
331 rc_ip
varbinary(40) NOT NULL default '',
334 rc_deleted tinyint unsigned
NOT NULL default 0,
335 rc_logid
int unsigned
NOT NULL default 0,
336 rc_log_type
varbinary(255) NULL default NULL,
337 rc_log_action
varbinary(255) NULL default NULL,
339 ) /*$wgDBTableOptions*/;
340 CREATE INDEX /*i*/rc_timestamp
ON /*_*/recentchanges (rc_timestamp
);
341 CREATE INDEX /*i*/rc_namespace_title
ON /*_*/recentchanges (rc_namespace
, rc_title
);
342 CREATE INDEX /*i*/rc_cur_id
ON /*_*/recentchanges (rc_cur_id
);
343 CREATE INDEX /*i*/new_name_timestamp
ON /*_*/recentchanges (rc_new
,rc_namespace
,rc_timestamp
);
344 CREATE INDEX /*i*/rc_ip
ON /*_*/recentchanges (rc_ip
);
345 CREATE INDEX /*i*/rc_ns_usertext
ON /*_*/recentchanges (rc_namespace
, rc_user_text
);
346 CREATE INDEX /*i*/rc_user_text
ON /*_*/recentchanges (rc_user_text
, rc_timestamp
);
347 CREATE TABLE /*_*/watchlist (
348 wl_user
int unsigned
NOT NULL,
349 wl_namespace
int NOT NULL default 0,
350 wl_title
varchar(255) binary NOT NULL default '',
351 wl_notificationtimestamp
varbinary(14)
352 ) /*$wgDBTableOptions*/;
353 CREATE UNIQUE INDEX /*i*/wl_user
ON /*_*/watchlist (wl_user
, wl_namespace
, wl_title
);
354 CREATE INDEX /*i*/namespace_title
ON /*_*/watchlist (wl_namespace
, wl_title
);
355 CREATE TABLE /*_*/searchindex (
356 si_page
int unsigned
NOT NULL,
357 si_title
varchar(255) NOT NULL default '',
358 si_text mediumtext
NOT NULL
360 CREATE UNIQUE INDEX /*i*/si_page
ON /*_*/searchindex (si_page
);
361 CREATE FULLTEXT
INDEX /*i*/si_title
ON /*_*/searchindex (si_title
);
362 CREATE FULLTEXT
INDEX /*i*/si_text
ON /*_*/searchindex (si_text
);
363 CREATE TABLE /*_*/interwiki (
364 iw_prefix
varchar(32) NOT NULL,
365 iw_url
blob NOT NULL,
366 iw_api
blob NOT NULL,
367 iw_wikiid
varchar(64) NOT NULL,
368 iw_local bool
NOT NULL,
369 iw_trans tinyint
NOT NULL default 0
370 ) /*$wgDBTableOptions*/;
371 CREATE UNIQUE INDEX /*i*/iw_prefix
ON /*_*/interwiki (iw_prefix
);
372 CREATE TABLE /*_*/querycache (
373 qc_type
varbinary(32) NOT NULL,
374 qc_value
int unsigned
NOT NULL default 0,
375 qc_namespace
int NOT NULL default 0,
376 qc_title
varchar(255) binary NOT NULL default ''
377 ) /*$wgDBTableOptions*/;
378 CREATE INDEX /*i*/qc_type
ON /*_*/querycache (qc_type
,qc_value
);
379 CREATE TABLE /*_*/objectcache (
380 keyname
varbinary(255) NOT NULL default '' PRIMARY KEY,
383 ) /*$wgDBTableOptions*/;
384 CREATE INDEX /*i*/exptime
ON /*_*/objectcache (exptime
);
385 CREATE TABLE /*_*/transcache (
386 tc_url
varbinary(255) NOT NULL,
388 tc_time
binary(14) NOT NULL
389 ) /*$wgDBTableOptions*/;
390 CREATE UNIQUE INDEX /*i*/tc_url_idx
ON /*_*/transcache (tc_url
);
391 CREATE TABLE /*_*/logging (
392 log_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
393 log_type
varbinary(32) NOT NULL default '',
394 log_action
varbinary(32) NOT NULL default '',
395 log_timestamp
binary(14) NOT NULL default '19700101000000',
396 log_user
int unsigned
NOT NULL default 0,
397 log_user_text
varchar(255) binary NOT NULL default '',
398 log_namespace
int NOT NULL default 0,
399 log_title
varchar(255) binary NOT NULL default '',
400 log_page
int unsigned
NULL,
401 log_comment
varchar(255) NOT NULL default '',
402 log_params
blob NOT NULL,
403 log_deleted tinyint unsigned
NOT NULL default 0
404 ) /*$wgDBTableOptions*/;
405 CREATE INDEX /*i*/type_time
ON /*_*/logging (log_type
, log_timestamp
);
406 CREATE INDEX /*i*/user_time
ON /*_*/logging (log_user
, log_timestamp
);
407 CREATE INDEX /*i*/page_time
ON /*_*/logging (log_namespace
, log_title
, log_timestamp
);
408 CREATE INDEX /*i*/times
ON /*_*/logging (log_timestamp
);
409 CREATE INDEX /*i*/log_user_type_time
ON /*_*/logging (log_user
, log_type
, log_timestamp
);
410 CREATE INDEX /*i*/log_page_id_time
ON /*_*/logging (log_page
,log_timestamp
);
411 CREATE INDEX /*i*/type_action
ON /*_*/logging (log_type
, log_action
, log_timestamp
);
412 CREATE TABLE /*_*/log_search (
413 ls_field
varbinary(32) NOT NULL,
414 ls_value
varchar(255) NOT NULL,
415 ls_log_id
int unsigned
NOT NULL default 0
416 ) /*$wgDBTableOptions*/;
417 CREATE UNIQUE INDEX /*i*/ls_field_val
ON /*_*/log_search (ls_field
,ls_value
,ls_log_id
);
418 CREATE INDEX /*i*/ls_log_id
ON /*_*/log_search (ls_log_id
);
419 CREATE TABLE /*_*/job (
420 job_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
,
421 job_cmd
varbinary(60) NOT NULL default '',
422 job_namespace
int NOT NULL,
423 job_title
varchar(255) binary NOT NULL,
424 job_timestamp
varbinary(14) NULL default NULL,
425 job_params
blob NOT NULL
426 ) /*$wgDBTableOptions*/;
427 CREATE INDEX /*i*/job_cmd
ON /*_*/job (job_cmd
, job_namespace
, job_title
, job_params(128));
428 CREATE INDEX /*i*/job_timestamp
ON /*_*/job (job_timestamp
);
429 CREATE TABLE /*_*/querycache_info (
430 qci_type
varbinary(32) NOT NULL default '',
431 qci_timestamp
binary(14) NOT NULL default '19700101000000'
432 ) /*$wgDBTableOptions*/;
433 CREATE UNIQUE INDEX /*i*/qci_type
ON /*_*/querycache_info (qci_type
);
434 CREATE TABLE /*_*/redirect (
435 rd_from
int unsigned
NOT NULL default 0 PRIMARY KEY,
436 rd_namespace
int NOT NULL default 0,
437 rd_title
varchar(255) binary NOT NULL default '',
438 rd_interwiki
varchar(32) default NULL,
439 rd_fragment
varchar(255) binary default NULL
440 ) /*$wgDBTableOptions*/;
441 CREATE INDEX /*i*/rd_ns_title
ON /*_*/redirect (rd_namespace
,rd_title
,rd_from
);
442 CREATE TABLE /*_*/querycachetwo (
443 qcc_type
varbinary(32) NOT NULL,
444 qcc_value
int unsigned
NOT NULL default 0,
445 qcc_namespace
int NOT NULL default 0,
446 qcc_title
varchar(255) binary NOT NULL default '',
447 qcc_namespacetwo
int NOT NULL default 0,
448 qcc_titletwo
varchar(255) binary NOT NULL default ''
449 ) /*$wgDBTableOptions*/;
450 CREATE INDEX /*i*/qcc_type
ON /*_*/querycachetwo (qcc_type
,qcc_value
);
451 CREATE INDEX /*i*/qcc_title
ON /*_*/querycachetwo (qcc_type
,qcc_namespace
,qcc_title
);
452 CREATE INDEX /*i*/qcc_titletwo
ON /*_*/querycachetwo (qcc_type
,qcc_namespacetwo
,qcc_titletwo
);
453 CREATE TABLE /*_*/page_restrictions (
454 pr_page
int NOT NULL,
455 pr_type
varbinary(60) NOT NULL,
456 pr_level
varbinary(60) NOT NULL,
457 pr_cascade tinyint
NOT NULL,
459 pr_expiry
varbinary(14) NULL,
460 pr_id
int unsigned
NOT NULL PRIMARY KEY AUTO_INCREMENT
461 ) /*$wgDBTableOptions*/;
462 CREATE UNIQUE INDEX /*i*/pr_pagetype
ON /*_*/page_restrictions (pr_page
,pr_type
);
463 CREATE INDEX /*i*/pr_typelevel
ON /*_*/page_restrictions (pr_type
,pr_level
);
464 CREATE INDEX /*i*/pr_level
ON /*_*/page_restrictions (pr_level
);
465 CREATE INDEX /*i*/pr_cascade
ON /*_*/page_restrictions (pr_cascade
);
466 CREATE TABLE /*_*/protected_titles (
467 pt_namespace
int NOT NULL,
468 pt_title
varchar(255) binary NOT NULL,
469 pt_user
int unsigned
NOT NULL,
471 pt_timestamp
binary(14) NOT NULL,
472 pt_expiry
varbinary(14) NOT NULL default '',
473 pt_create_perm
varbinary(60) NOT NULL
474 ) /*$wgDBTableOptions*/;
475 CREATE UNIQUE INDEX /*i*/pt_namespace_title
ON /*_*/protected_titles (pt_namespace
,pt_title
);
476 CREATE INDEX /*i*/pt_timestamp
ON /*_*/protected_titles (pt_timestamp
);
477 CREATE TABLE /*_*/page_props (
478 pp_page
int NOT NULL,
479 pp_propname
varbinary(60) NOT NULL,
480 pp_value
blob NOT NULL
481 ) /*$wgDBTableOptions*/;
482 CREATE UNIQUE INDEX /*i*/pp_page_propname
ON /*_*/page_props (pp_page
,pp_propname
);
483 CREATE TABLE /*_*/updatelog (
484 ul_key
varchar(255) NOT NULL PRIMARY KEY,
486 ) /*$wgDBTableOptions*/;
487 CREATE TABLE /*_*/change_tag (
491 ct_tag
varchar(255) NOT NULL,
493 ) /*$wgDBTableOptions*/;
494 CREATE UNIQUE INDEX /*i*/change_tag_rc_tag
ON /*_*/change_tag (ct_rc_id
,ct_tag
);
495 CREATE UNIQUE INDEX /*i*/change_tag_log_tag
ON /*_*/change_tag (ct_log_id
,ct_tag
);
496 CREATE UNIQUE INDEX /*i*/change_tag_rev_tag
ON /*_*/change_tag (ct_rev_id
,ct_tag
);
497 CREATE INDEX /*i*/change_tag_tag_id
ON /*_*/change_tag (ct_tag
,ct_rc_id
,ct_rev_id
,ct_log_id
);
498 CREATE TABLE /*_*/tag_summary (
502 ts_tags
blob NOT NULL
503 ) /*$wgDBTableOptions*/;
504 CREATE UNIQUE INDEX /*i*/tag_summary_rc_id
ON /*_*/tag_summary (ts_rc_id
);
505 CREATE UNIQUE INDEX /*i*/tag_summary_log_id
ON /*_*/tag_summary (ts_log_id
);
506 CREATE UNIQUE INDEX /*i*/tag_summary_rev_id
ON /*_*/tag_summary (ts_rev_id
);
507 CREATE TABLE /*_*/valid_tag (
508 vt_tag
varchar(255) NOT NULL PRIMARY KEY
509 ) /*$wgDBTableOptions*/;
510 CREATE TABLE /*_*/l10n_cache (
511 lc_lang
varbinary(32) NOT NULL,
512 lc_key
varchar(255) NOT NULL,
513 lc_value mediumblob
NOT NULL
514 ) /*$wgDBTableOptions*/;
515 CREATE INDEX /*i*/lc_lang_key
ON /*_*/l10n_cache (lc_lang
, lc_key
);
516 CREATE TABLE /*_*/msg_resource (
517 mr_resource
varbinary(255) NOT NULL,
518 mr_lang
varbinary(32) NOT NULL,
519 mr_blob mediumblob
NOT NULL,
520 mr_timestamp
binary(14) NOT NULL
521 ) /*$wgDBTableOptions*/;
522 CREATE UNIQUE INDEX /*i*/mr_resource_lang
ON /*_*/msg_resource (mr_resource
, mr_lang
);
523 CREATE TABLE /*_*/msg_resource_links (
524 mrl_resource
varbinary(255) NOT NULL,
525 mrl_message
varbinary(255) NOT NULL
526 ) /*$wgDBTableOptions*/;
527 CREATE UNIQUE INDEX /*i*/mrl_message_resource
ON /*_*/msg_resource_links (mrl_message
, mrl_resource
);
528 CREATE TABLE /*_*/module_deps (
529 md_module
varbinary(255) NOT NULL,
530 md_skin
varbinary(32) NOT NULL,
531 md_deps mediumblob
NOT NULL
532 ) /*$wgDBTableOptions*/;
533 CREATE UNIQUE INDEX /*i*/md_module_skin
ON /*_*/module_deps (md_module
, md_skin
);
534 -- vim: sw=2 sts=2 et