From 24b14d88de20898401bbb9b4bc67e114900f73e5 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Thu, 20 Feb 2025 14:47:14 +0000 Subject: [PATCH 1/5] Add database script for MediaWiki 1.43 --- database/mw/README.md | 21 +- database/mw/cleanSql.php | 2 +- database/mw/docker-compose-clean.yml | 2 +- database/mw/new/mw1.43-wbs1.sql | 1185 ++++++++++++++++++++++++++ 4 files changed, 1206 insertions(+), 4 deletions(-) create mode 100644 database/mw/new/mw1.43-wbs1.sql diff --git a/database/mw/README.md b/database/mw/README.md index 7faec3c3b..007008476 100644 --- a/database/mw/README.md +++ b/database/mw/README.md @@ -11,6 +11,7 @@ This directory contains the SQL needed to create and wiki DBs. **Versions** +- mw1.43-wbs1 - First 1.43 install - mw1.39-wbs1 - First 1.39 install - mw1.38-wbs1 - First 1.38 install - mw1.35-wbs1 - First 1.35 install @@ -26,9 +27,25 @@ This directory contains the SQL needed to create and wiki DBs. Make sure you have updated the docker-compose-clean.yml to: - For adding extensions? - - Include the latest version of the Mediawiki image with the new code added but not loaded (for extensions) - Update maintWikWiki.json to match the defaults needs to load all extension from the mw image + +**Preparing the MediaWiki image:** + +Checkout the [wbstack/mediawiki](https://github.com/wbstack/mediawiki) repository and navigate to it. + +Remove any empty extension directories generated by the sync script. You can use the following command to help locate them if they exist: + +``` +git clean -nd +``` + +Build the image locally using: + +``` +docker build -t local-wbaas-mediawiki . +``` + **Start the setup:** ``` @@ -62,7 +79,7 @@ cd ./w/extensions/ && ls -dm * | tr -d ' ' | tr -d \\n && cd ./../../ This is an example install command with `WikibaseEdtf` excluded: ``` -WBS_DOMAIN=maint php ./w/maintenance/install.php --dbserver sql-clean --dbuser root --dbpass toor --dbname wiki --extensions AdvancedSearch,Auth_remoteuser,CirrusSearch,Cite,CodeEditor,CodeMirror,ConfirmAccount,ConfirmEdit,DeleteBatch,Echo,Elastica,EmbedVideo,EntitySchema,Gadgets,Graph,InviteSignup,JsonConfig,Kartographer,Mailgun,Math,MobileFrontend,MultimediaViewer,Nuke,OAuth,PageImages,ParserFunctions,Poem,Popups,RevisionSlider,Score,Scribunto,SecureLinkFixer,SpamBlacklist,StopForumSpam,SyntaxHighlight_GeSHi,TemplateData,TemplateSandbox,TextExtracts,Thanks,ThatSrc,TorBlock,TwoColConflict,UniversalLanguageSelector,WikiEditor,WikiHiero,Wikibase,WikibaseCirrusSearch,WikibaseExampleData,WikibaseInWikitext,WikibaseLexeme,WikibaseLexemeCirrusSearch,WikibaseManifest,cldr --pass AdminPass0 SiteName AdminName +WBS_DOMAIN=maint php ./w/maintenance/install.php --dbserver sql-clean --dbuser root --dbpass toor --dbname wiki --extensions AdvancedSearch,Auth_remoteuser,CirrusSearch,Cite,CodeEditor,CodeMirror,ConfirmAccount,ConfirmEdit,DeleteBatch,DismissableSiteNotice,Echo,Elastica,EmbedVideo,EntitySchema,Gadgets,InviteSignup,JsonConfig,Kartographer,Mailgun,Math,MobileFrontend,MultimediaViewer,Nuke,OAuth,PageImages,ParserFunctions,Poem,RevisionSlider,Score,Scribunto,SecureLinkFixer,SpamBlacklist,StopForumSpam,SyntaxHighlight_GeSHi,TemplateData,TemplateSandbox,TextExtracts,Thanks,ThatSrc,TorBlock,TwoColConflict,UniversalLanguageSelector,VisualEditor,WikiEditor,WikiHiero,Wikibase,WikibaseCirrusSearch,WikibaseExampleData,WikibaseInWikitext,WikibaseLexeme,WikibaseLexemeCirrusSearch,WikibaseManifest,cldr --pass AdminPass0 SiteName AdminName ``` **While** https://phabricator.wikimedia.org/T267809 is broken you'll then need to edit the auto generated LocalSettings.php file... diff --git a/database/mw/cleanSql.php b/database/mw/cleanSql.php index 2ac366fed..dceb99d69 100644 --- a/database/mw/cleanSql.php +++ b/database/mw/cleanSql.php @@ -6,7 +6,7 @@ // TODO allow passing in file? or run for all files? $placeholder = '<>_'; -$filename = __DIR__.'/new/mw1.39-wbs1.sql'; +$filename = __DIR__.'/new/mw1.43-wbs1.sql'; // Get the file $text = file_get_contents($filename); diff --git a/database/mw/docker-compose-clean.yml b/database/mw/docker-compose-clean.yml index 96f4b1207..6d52c13fb 100644 --- a/database/mw/docker-compose-clean.yml +++ b/database/mw/docker-compose-clean.yml @@ -3,7 +3,7 @@ version: '3.1' services: mediawiki: - image: ghcr.io/wbstack/mediawiki:1.39-7.4-20230328-0 + image: local-wbaas-mediawiki volumes: - ./maintWikWiki.json:/var/www/html/w/maintWikWiki.json - ./new:/var/www/html/w/maintenance/wbaas-api/new diff --git a/database/mw/new/mw1.43-wbs1.sql b/database/mw/new/mw1.43-wbs1.sql new file mode 100644 index 000000000..39678bd4e --- /dev/null +++ b/database/mw/new/mw1.43-wbs1.sql @@ -0,0 +1,1185 @@ +-- Adminer 4.6.3 MySQL dump + +CREATE TABLE `<>_account_credentials` ( + `acd_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `acd_user_id` int(10) unsigned NOT NULL, + `acd_real_name` varbinary(255) NOT NULL DEFAULT '', + `acd_email` tinyblob NOT NULL, + `acd_email_authenticated` varbinary(14) DEFAULT NULL, + `acd_bio` mediumblob NOT NULL, + `acd_notes` mediumblob NOT NULL, + `acd_urls` mediumblob NOT NULL, + `acd_ip` varbinary(255) DEFAULT '', + `acd_xff` varbinary(255) DEFAULT '', + `acd_agent` varbinary(255) DEFAULT '', + `acd_filename` varbinary(255) DEFAULT NULL, + `acd_storage_key` varbinary(64) DEFAULT NULL, + `acd_areas` mediumblob NOT NULL, + `acd_registration` varbinary(14) NOT NULL, + `acd_accepted` varbinary(14) DEFAULT NULL, + `acd_user` int(10) unsigned NOT NULL DEFAULT 0, + `acd_comment` varbinary(255) NOT NULL DEFAULT '', + PRIMARY KEY (`acd_id`), + UNIQUE KEY `acd_user_id` (`acd_user_id`,`acd_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_account_requests` ( + `acr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `acr_name` varbinary(255) NOT NULL DEFAULT '', + `acr_real_name` varbinary(255) NOT NULL DEFAULT '', + `acr_email` varbinary(255) NOT NULL, + `acr_email_authenticated` varbinary(14) DEFAULT NULL, + `acr_email_token` binary(32) DEFAULT NULL, + `acr_email_token_expires` varbinary(14) DEFAULT NULL, + `acr_bio` mediumblob NOT NULL, + `acr_notes` mediumblob NOT NULL, + `acr_urls` mediumblob NOT NULL, + `acr_ip` varbinary(255) DEFAULT '', + `acr_xff` varbinary(255) DEFAULT '', + `acr_agent` varbinary(255) DEFAULT '', + `acr_filename` varbinary(255) DEFAULT NULL, + `acr_storage_key` varbinary(64) DEFAULT NULL, + `acr_type` tinyint(255) unsigned NOT NULL DEFAULT 0, + `acr_areas` mediumblob NOT NULL, + `acr_registration` varbinary(14) NOT NULL, + `acr_deleted` tinyint(1) NOT NULL, + `acr_rejected` varbinary(14) DEFAULT NULL, + `acr_held` varbinary(14) DEFAULT NULL, + `acr_user` int(10) unsigned NOT NULL DEFAULT 0, + `acr_comment` varbinary(255) NOT NULL DEFAULT '', + PRIMARY KEY (`acr_id`), + UNIQUE KEY `acr_name` (`acr_name`), + KEY `acr_email` (`acr_email`), + KEY `acr_email_token` (`acr_email_token`), + KEY `acr_type_del_reg` (`acr_type`,`acr_deleted`,`acr_registration`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_actor` ( + `actor_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `actor_user` int(10) unsigned DEFAULT NULL, + `actor_name` varbinary(255) NOT NULL, + PRIMARY KEY (`actor_id`), + UNIQUE KEY `actor_name` (`actor_name`), + UNIQUE KEY `actor_user` (`actor_user`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_archive` ( + `ar_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `ar_namespace` int(11) NOT NULL DEFAULT 0, + `ar_title` varbinary(255) NOT NULL DEFAULT '', + `ar_comment_id` bigint(20) unsigned NOT NULL, + `ar_actor` bigint(20) unsigned NOT NULL, + `ar_timestamp` binary(14) NOT NULL, + `ar_minor_edit` tinyint(4) NOT NULL DEFAULT 0, + `ar_rev_id` int(10) unsigned NOT NULL, + `ar_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `ar_len` int(10) unsigned DEFAULT NULL, + `ar_page_id` int(10) unsigned DEFAULT NULL, + `ar_parent_id` int(10) unsigned DEFAULT NULL, + `ar_sha1` varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (`ar_id`), + UNIQUE KEY `ar_revid_uniq` (`ar_rev_id`), + KEY `ar_name_title_timestamp` (`ar_namespace`,`ar_title`,`ar_timestamp`), + KEY `ar_actor_timestamp` (`ar_actor`,`ar_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_block` ( + `bl_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `bl_target` int(10) unsigned NOT NULL, + `bl_by_actor` bigint(20) unsigned NOT NULL, + `bl_reason_id` bigint(20) unsigned NOT NULL, + `bl_timestamp` binary(14) NOT NULL, + `bl_anon_only` tinyint(1) NOT NULL DEFAULT 0, + `bl_create_account` tinyint(1) NOT NULL DEFAULT 1, + `bl_enable_autoblock` tinyint(1) NOT NULL DEFAULT 1, + `bl_expiry` varbinary(14) NOT NULL, + `bl_deleted` tinyint(1) NOT NULL DEFAULT 0, + `bl_block_email` tinyint(1) NOT NULL DEFAULT 0, + `bl_allow_usertalk` tinyint(1) NOT NULL DEFAULT 0, + `bl_parent_block_id` int(10) unsigned DEFAULT NULL, + `bl_sitewide` tinyint(1) NOT NULL DEFAULT 1, + PRIMARY KEY (`bl_id`), + KEY `bl_timestamp` (`bl_timestamp`), + KEY `bl_target` (`bl_target`), + KEY `bl_expiry` (`bl_expiry`), + KEY `bl_parent_block_id` (`bl_parent_block_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_block_target` ( + `bt_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `bt_address` tinyblob DEFAULT NULL, + `bt_user` int(10) unsigned DEFAULT NULL, + `bt_user_text` varbinary(255) DEFAULT NULL, + `bt_auto` tinyint(1) NOT NULL DEFAULT 0, + `bt_range_start` tinyblob DEFAULT NULL, + `bt_range_end` tinyblob DEFAULT NULL, + `bt_ip_hex` tinyblob DEFAULT NULL, + `bt_count` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`bt_id`), + KEY `bt_address` (`bt_address`(42)), + KEY `bt_ip_user_text` (`bt_ip_hex`(35),`bt_user_text`), + KEY `bt_range` (`bt_range_start`(35),`bt_range_end`(35)), + KEY `bt_user` (`bt_user`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_bot_passwords` ( + `bp_user` int(10) unsigned NOT NULL, + `bp_app_id` varbinary(32) NOT NULL, + `bp_password` tinyblob NOT NULL, + `bp_token` binary(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `bp_restrictions` blob NOT NULL, + `bp_grants` blob NOT NULL, + PRIMARY KEY (`bp_user`,`bp_app_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_category` ( + `cat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `cat_title` varbinary(255) NOT NULL, + `cat_pages` int(11) NOT NULL DEFAULT 0, + `cat_subcats` int(11) NOT NULL DEFAULT 0, + `cat_files` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`cat_id`), + UNIQUE KEY `cat_title` (`cat_title`), + KEY `cat_pages` (`cat_pages`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_categorylinks` ( + `cl_from` int(10) unsigned NOT NULL DEFAULT 0, + `cl_to` varbinary(255) NOT NULL DEFAULT '', + `cl_sortkey` varbinary(230) NOT NULL DEFAULT '', + `cl_sortkey_prefix` varbinary(255) NOT NULL DEFAULT '', + `cl_timestamp` timestamp NOT NULL, + `cl_collation` varbinary(32) NOT NULL DEFAULT '', + `cl_type` enum('page','subcat','file') NOT NULL DEFAULT 'page', + PRIMARY KEY (`cl_from`,`cl_to`), + KEY `cl_sortkey` (`cl_to`,`cl_type`,`cl_sortkey`,`cl_from`), + KEY `cl_timestamp` (`cl_to`,`cl_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_change_tag` ( + `ct_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `ct_rc_id` bigint(20) unsigned DEFAULT NULL, + `ct_log_id` int(10) unsigned DEFAULT NULL, + `ct_rev_id` int(10) unsigned DEFAULT NULL, + `ct_params` blob DEFAULT NULL, + `ct_tag_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`ct_id`), + UNIQUE KEY `ct_rc_tag_id` (`ct_rc_id`,`ct_tag_id`), + UNIQUE KEY `ct_log_tag_id` (`ct_log_id`,`ct_tag_id`), + UNIQUE KEY `ct_rev_tag_id` (`ct_rev_id`,`ct_tag_id`), + KEY `ct_tag_id_id` (`ct_tag_id`,`ct_rc_id`,`ct_rev_id`,`ct_log_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_change_tag_def` ( + `ctd_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `ctd_name` varbinary(255) NOT NULL, + `ctd_user_defined` tinyint(1) NOT NULL, + `ctd_count` bigint(20) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`ctd_id`), + UNIQUE KEY `ctd_name` (`ctd_name`), + KEY `ctd_count` (`ctd_count`), + KEY `ctd_user_defined` (`ctd_user_defined`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_comment` ( + `comment_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `comment_hash` int(11) NOT NULL, + `comment_text` blob NOT NULL, + `comment_data` blob DEFAULT NULL, + PRIMARY KEY (`comment_id`), + KEY `comment_hash` (`comment_hash`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_content` ( + `content_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `content_size` int(10) unsigned NOT NULL, + `content_sha1` varbinary(32) NOT NULL, + `content_model` smallint(5) unsigned NOT NULL, + `content_address` varbinary(255) NOT NULL, + PRIMARY KEY (`content_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_content_models` ( + `model_id` int(11) NOT NULL AUTO_INCREMENT, + `model_name` varbinary(64) NOT NULL, + PRIMARY KEY (`model_id`), + UNIQUE KEY `model_name` (`model_name`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +INSERT INTO `<>_content_models` (`model_id`, `model_name`) VALUES +(1, UNHEX('77696B6974657874')); + +CREATE TABLE `<>_echo_email_batch` ( + `eeb_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `eeb_user_id` int(10) unsigned NOT NULL, + `eeb_event_priority` tinyint(3) unsigned NOT NULL DEFAULT 10, + `eeb_event_id` int(10) unsigned NOT NULL, + `eeb_event_hash` varbinary(32) NOT NULL, + PRIMARY KEY (`eeb_id`), + UNIQUE KEY `echo_email_batch_user_event` (`eeb_user_id`,`eeb_event_id`), + KEY `echo_email_batch_user_hash_priority` (`eeb_user_id`,`eeb_event_hash`,`eeb_event_priority`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_event` ( + `event_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `event_type` varbinary(64) NOT NULL, + `event_variant` varbinary(64) DEFAULT NULL, + `event_agent_id` int(10) unsigned DEFAULT NULL, + `event_agent_ip` varbinary(39) DEFAULT NULL, + `event_extra` blob DEFAULT NULL, + `event_page_id` int(10) unsigned DEFAULT NULL, + `event_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`event_id`), + KEY `echo_event_type` (`event_type`), + KEY `echo_event_page_id` (`event_page_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_notification` ( + `notification_event` int(10) unsigned NOT NULL, + `notification_user` int(10) unsigned NOT NULL, + `notification_timestamp` binary(14) NOT NULL, + `notification_read_timestamp` binary(14) DEFAULT NULL, + `notification_bundle_hash` varbinary(32) NOT NULL, + PRIMARY KEY (`notification_user`,`notification_event`), + KEY `echo_user_timestamp` (`notification_user`,`notification_timestamp`), + KEY `echo_notification_event` (`notification_event`), + KEY `echo_notification_user_read_timestamp` (`notification_user`,`notification_read_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_push_provider` ( + `epp_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT, + `epp_name` tinyblob NOT NULL, + PRIMARY KEY (`epp_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_push_subscription` ( + `eps_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `eps_user` int(10) unsigned NOT NULL, + `eps_token` blob NOT NULL, + `eps_token_sha256` binary(64) NOT NULL, + `eps_provider` tinyint(3) unsigned NOT NULL, + `eps_updated` timestamp NOT NULL, + `eps_data` blob DEFAULT NULL, + `eps_topic` tinyint(3) unsigned DEFAULT NULL, + PRIMARY KEY (`eps_id`), + UNIQUE KEY `eps_token_sha256` (`eps_token_sha256`), + KEY `eps_provider` (`eps_provider`), + KEY `eps_topic` (`eps_topic`), + KEY `eps_user` (`eps_user`), + KEY `eps_token` (`eps_token`(10)) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_push_topic` ( + `ept_id` tinyint(3) unsigned NOT NULL AUTO_INCREMENT, + `ept_text` tinyblob NOT NULL, + PRIMARY KEY (`ept_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_target_page` ( + `etp_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `etp_page` int(10) unsigned NOT NULL DEFAULT 0, + `etp_event` int(10) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`etp_id`), + KEY `echo_target_page_event` (`etp_event`), + KEY `echo_target_page_page_event` (`etp_page`,`etp_event`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_echo_unread_wikis` ( + `euw_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `euw_user` int(10) unsigned NOT NULL, + `euw_wiki` varbinary(64) NOT NULL, + `euw_alerts` int(10) unsigned NOT NULL, + `euw_alerts_ts` binary(14) NOT NULL, + `euw_messages` int(10) unsigned NOT NULL, + `euw_messages_ts` binary(14) NOT NULL, + PRIMARY KEY (`euw_id`), + UNIQUE KEY `echo_unread_wikis_user_wiki` (`euw_user`,`euw_wiki`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_entityschema_id_counter` ( + `id_value` int(10) unsigned NOT NULL +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_externallinks` ( + `el_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `el_from` int(10) unsigned NOT NULL DEFAULT 0, + `el_to_domain_index` varbinary(255) NOT NULL DEFAULT '', + `el_to_path` blob DEFAULT NULL, + PRIMARY KEY (`el_id`), + KEY `el_from` (`el_from`), + KEY `el_to_domain_index_to_path` (`el_to_domain_index`,`el_to_path`(60)) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_filearchive` ( + `fa_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `fa_name` varbinary(255) NOT NULL DEFAULT '', + `fa_archive_name` varbinary(255) DEFAULT '', + `fa_storage_group` varbinary(16) DEFAULT NULL, + `fa_storage_key` varbinary(64) DEFAULT '', + `fa_deleted_user` int(11) DEFAULT NULL, + `fa_deleted_timestamp` binary(14), + `fa_deleted_reason_id` bigint(20) unsigned NOT NULL, + `fa_size` bigint(20) unsigned DEFAULT 0, + `fa_width` int(11) DEFAULT 0, + `fa_height` int(11) DEFAULT 0, + `fa_metadata` mediumblob DEFAULT NULL, + `fa_bits` int(11) DEFAULT 0, + `fa_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE','3D') DEFAULT NULL, + `fa_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') DEFAULT 'unknown', + `fa_minor_mime` varbinary(100) DEFAULT 'unknown', + `fa_description_id` bigint(20) unsigned NOT NULL, + `fa_actor` bigint(20) unsigned NOT NULL, + `fa_timestamp` binary(14), + `fa_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `fa_sha1` varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (`fa_id`), + KEY `fa_name` (`fa_name`,`fa_timestamp`), + KEY `fa_storage_group` (`fa_storage_group`,`fa_storage_key`), + KEY `fa_deleted_timestamp` (`fa_deleted_timestamp`), + KEY `fa_actor_timestamp` (`fa_actor`,`fa_timestamp`), + KEY `fa_sha1` (`fa_sha1`(10)) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_image` ( + `img_name` varbinary(255) NOT NULL DEFAULT '', + `img_size` bigint(20) unsigned NOT NULL DEFAULT 0, + `img_width` int(11) NOT NULL DEFAULT 0, + `img_height` int(11) NOT NULL DEFAULT 0, + `img_metadata` mediumblob NOT NULL, + `img_bits` int(11) NOT NULL DEFAULT 0, + `img_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE','3D') DEFAULT NULL, + `img_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') NOT NULL DEFAULT 'unknown', + `img_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown', + `img_description_id` bigint(20) unsigned NOT NULL, + `img_actor` bigint(20) unsigned NOT NULL, + `img_timestamp` binary(14) NOT NULL, + `img_sha1` varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (`img_name`), + KEY `img_actor_timestamp` (`img_actor`,`img_timestamp`), + KEY `img_size` (`img_size`), + KEY `img_timestamp` (`img_timestamp`), + KEY `img_sha1` (`img_sha1`(10)), + KEY `img_media_mime` (`img_media_type`,`img_major_mime`,`img_minor_mime`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_imagelinks` ( + `il_from` int(10) unsigned NOT NULL DEFAULT 0, + `il_to` varbinary(255) NOT NULL DEFAULT '', + `il_from_namespace` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`il_from`,`il_to`), + KEY `il_to` (`il_to`,`il_from`), + KEY `il_backlinks_namespace` (`il_from_namespace`,`il_to`,`il_from`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_interwiki` ( + `iw_prefix` varbinary(32) NOT NULL, + `iw_url` blob NOT NULL, + `iw_api` blob NOT NULL, + `iw_wikiid` varbinary(64) NOT NULL, + `iw_local` tinyint(1) NOT NULL, + `iw_trans` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`iw_prefix`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +INSERT INTO `<>_interwiki` (`iw_prefix`, `iw_url`, `iw_api`, `iw_wikiid`, `iw_local`, `iw_trans`) VALUES +(UNHEX('6163726F6E796D'), 'https://www.acronymfinder.com/~/search/af.aspx?string=exact&Acronym=$1', '', UNHEX(''), 0, 0), +(UNHEX('6172786976'), 'https://www.arxiv.org/abs/$1', '', UNHEX(''), 0, 0), +(UNHEX('6332'), 'https://wiki.c2.com/?$1', '', UNHEX(''), 0, 0), +(UNHEX('6361636865'), 'https://www.google.com/search?q=cache:$1', '', UNHEX(''), 0, 0), +(UNHEX('636F6D6D6F6E73'), 'https://commons.wikimedia.org/wiki/$1', 'https://commons.wikimedia.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('64696374696F6E617279'), 'https://www.dict.org/bin/Dict?Database=*&Form=Dict1&Strategy=*&Query=$1', '', UNHEX(''), 0, 0), +(UNHEX('646F69'), 'https://dx.doi.org/$1', '', UNHEX(''), 0, 0), +(UNHEX('656C69627265'), 'http://enciclopedia.us.es/index.php/$1', 'http://enciclopedia.us.es/api.php', UNHEX(''), 0, 0), +(UNHEX('656D61637377696B69'), 'https://www.emacswiki.org/emacs/$1', '', UNHEX(''), 0, 0), +(UNHEX('66616E646F6D'), 'https://community.fandom.com/wiki/w:c:$1', '', UNHEX(''), 0, 0), +(UNHEX('666F6C646F63'), 'https://foldoc.org/?$1', '', UNHEX(''), 0, 0), +(UNHEX('667265656273646D616E'), 'https://www.FreeBSD.org/cgi/man.cgi?apropos=1&query=$1', '', UNHEX(''), 0, 0), +(UNHEX('676F6F676C65'), 'https://www.google.com/search?q=$1', '', UNHEX(''), 0, 0), +(UNHEX('676F6F676C6567726F757073'), 'https://groups.google.com/groups?q=$1', '', UNHEX(''), 0, 0), +(UNHEX('68616D6D6F6E6477696B69'), 'https://www.dairiki.org/HammondWiki/$1', '', UNHEX(''), 0, 0), +(UNHEX('687277696B69'), 'http://www.hrwiki.org/wiki/$1', 'http://www.hrwiki.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('696D6462'), 'https://www.imdb.com/find?q=$1&tt=on', '', UNHEX(''), 0, 0), +(UNHEX('6C6F6A62616E'), 'https://mw.lojban.org/papri/$1', '', UNHEX(''), 0, 0), +(UNHEX('6D65617462616C6C'), 'http://meatballwiki.org/wiki/$1', '', UNHEX(''), 0, 0), +(UNHEX('6D6564696177696B6977696B69'), 'https://www.mediawiki.org/wiki/$1', 'https://www.mediawiki.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('6D656D6F7279616C706861'), 'https://memory-alpha.fandom.com/wiki/$1', 'https://memory-alpha.fandom.com/api.php', UNHEX(''), 0, 0), +(UNHEX('6D65746177696B696D65646961'), 'https://meta.wikimedia.org/wiki/$1', 'https://meta.wikimedia.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('6D6F7A696C6C6177696B69'), 'https://wiki.mozilla.org/$1', 'https://wiki.mozilla.org/api.php', UNHEX(''), 0, 0), +(UNHEX('6D77'), 'https://www.mediawiki.org/wiki/$1', 'https://www.mediawiki.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('6F656973'), 'https://oeis.org/$1', '', UNHEX(''), 0, 0), +(UNHEX('706D6964'), 'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract', '', UNHEX(''), 0, 0), +(UNHEX('707974686F6E696E666F'), 'https://wiki.python.org/moin/$1', '', UNHEX(''), 0, 0), +(UNHEX('726663'), 'https://tools.ietf.org/html/rfc$1', '', UNHEX(''), 0, 0), +(UNHEX('73656E736569736C696272617279'), 'https://senseis.xmp.net/?$1', '', UNHEX(''), 0, 0), +(UNHEX('73686F757477696B69'), 'https://www.shoutwiki.com/wiki/$1', 'https://www.shoutwiki.com/w/api.php', UNHEX(''), 0, 0), +(UNHEX('7468656F7065646961'), 'https://www.theopedia.com/$1', '', UNHEX(''), 0, 0), +(UNHEX('746D6277'), 'https://www.tmbw.net/wiki/$1', 'https://tmbw.net/wiki/api.php', UNHEX(''), 0, 0), +(UNHEX('7477696B69'), 'https://twiki.org/cgi-bin/view/$1', '', UNHEX(''), 0, 0), +(UNHEX('756E6379636C6F7065646961'), 'https://en.uncyclopedia.co/wiki/$1', 'https://en.uncyclopedia.co/w/api.php', UNHEX(''), 0, 0), +(UNHEX('7573656D6F64'), 'https://www.usemod.org/cgi-bin/wiki.pl?$1', '', UNHEX(''), 0, 0), +(UNHEX('77696B6961'), 'https://community.fandom.com/wiki/w:c:$1', '', UNHEX(''), 0, 0), +(UNHEX('77696B69626F6F6B73'), 'https://en.wikibooks.org/wiki/$1', 'https://en.wikibooks.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B6964617461'), 'https://www.wikidata.org/wiki/$1', 'https://www.wikidata.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B69686F77'), 'https://www.wikihow.com/$1', 'https://www.wikihow.com/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B696D65646961'), 'https://foundation.wikimedia.org/wiki/$1', 'https://foundation.wikimedia.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B696E657773'), 'https://en.wikinews.org/wiki/$1', 'https://en.wikinews.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B697065646961'), 'https://en.wikipedia.org/wiki/$1', 'https://en.wikipedia.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B6971756F7465'), 'https://en.wikiquote.org/wiki/$1', 'https://en.wikiquote.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B69736F75726365'), 'https://wikisource.org/wiki/$1', 'https://wikisource.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B6973706563696573'), 'https://species.wikimedia.org/wiki/$1', 'https://species.wikimedia.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B6976657273697479'), 'https://en.wikiversity.org/wiki/$1', 'https://en.wikiversity.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B69766F79616765'), 'https://en.wikivoyage.org/wiki/$1', 'https://en.wikivoyage.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B6977696B69776562'), 'http://wiki.c2.com/?$1', '', UNHEX(''), 0, 0), +(UNHEX('77696B74'), 'https://en.wiktionary.org/wiki/$1', 'https://en.wiktionary.org/w/api.php', UNHEX(''), 0, 0), +(UNHEX('77696B74696F6E617279'), 'https://en.wiktionary.org/wiki/$1', 'https://en.wiktionary.org/w/api.php', UNHEX(''), 0, 0); + +CREATE TABLE `<>_invitesignup` ( + `is_hash` varbinary(40) NOT NULL, + `is_inviter` int(10) unsigned NOT NULL, + `is_invitee` int(10) unsigned NOT NULL, + `is_email` varbinary(255) NOT NULL, + `is_when` binary(14) NOT NULL, + `is_used` binary(14) NOT NULL, + `is_groups` longblob NOT NULL, + PRIMARY KEY (`is_hash`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_ipblocks_restrictions` ( + `ir_ipb_id` int(10) unsigned NOT NULL, + `ir_type` tinyint(4) NOT NULL, + `ir_value` int(10) unsigned NOT NULL, + PRIMARY KEY (`ir_ipb_id`,`ir_type`,`ir_value`), + KEY `ir_type_value` (`ir_type`,`ir_value`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_ip_changes` ( + `ipc_rev_id` int(10) unsigned NOT NULL DEFAULT 0, + `ipc_rev_timestamp` binary(14) NOT NULL, + `ipc_hex` varbinary(35) NOT NULL DEFAULT '', + PRIMARY KEY (`ipc_rev_id`), + KEY `ipc_rev_timestamp` (`ipc_rev_timestamp`), + KEY `ipc_hex_time` (`ipc_hex`,`ipc_rev_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_iwlinks` ( + `iwl_from` int(10) unsigned NOT NULL DEFAULT 0, + `iwl_prefix` varbinary(32) NOT NULL DEFAULT '', + `iwl_title` varbinary(255) NOT NULL DEFAULT '', + PRIMARY KEY (`iwl_from`,`iwl_prefix`,`iwl_title`), + KEY `iwl_prefix_title_from` (`iwl_prefix`,`iwl_title`,`iwl_from`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_job` ( + `job_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `job_cmd` varbinary(60) NOT NULL DEFAULT '', + `job_namespace` int(11) NOT NULL, + `job_title` varbinary(255) NOT NULL, + `job_timestamp` binary(14) DEFAULT NULL, + `job_params` mediumblob NOT NULL, + `job_random` int(10) unsigned NOT NULL DEFAULT 0, + `job_attempts` int(10) unsigned NOT NULL DEFAULT 0, + `job_token` varbinary(32) NOT NULL DEFAULT '', + `job_token_timestamp` binary(14) DEFAULT NULL, + `job_sha1` varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (`job_id`), + KEY `job_sha1` (`job_sha1`), + KEY `job_cmd_token` (`job_cmd`,`job_token`,`job_random`), + KEY `job_cmd_token_id` (`job_cmd`,`job_token`,`job_id`), + KEY `job_cmd` (`job_cmd`,`job_namespace`,`job_title`,`job_params`(128)), + KEY `job_timestamp` (`job_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_l10n_cache` ( + `lc_lang` varbinary(35) NOT NULL, + `lc_key` varbinary(255) NOT NULL, + `lc_value` mediumblob NOT NULL, + PRIMARY KEY (`lc_lang`,`lc_key`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_langlinks` ( + `ll_from` int(10) unsigned NOT NULL DEFAULT 0, + `ll_lang` varbinary(35) NOT NULL DEFAULT '', + `ll_title` varbinary(255) NOT NULL DEFAULT '', + PRIMARY KEY (`ll_from`,`ll_lang`), + KEY `ll_lang` (`ll_lang`,`ll_title`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_linktarget` ( + `lt_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `lt_namespace` int(11) NOT NULL, + `lt_title` varbinary(255) NOT NULL, + PRIMARY KEY (`lt_id`), + UNIQUE KEY `lt_namespace_title` (`lt_namespace`,`lt_title`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_logging` ( + `log_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `log_type` varbinary(32) NOT NULL DEFAULT '', + `log_action` varbinary(32) NOT NULL DEFAULT '', + `log_timestamp` binary(14) NOT NULL DEFAULT '19700101000000', + `log_actor` bigint(20) unsigned NOT NULL, + `log_namespace` int(11) NOT NULL DEFAULT 0, + `log_title` varbinary(255) NOT NULL DEFAULT '', + `log_page` int(10) unsigned DEFAULT NULL, + `log_comment_id` bigint(20) unsigned NOT NULL, + `log_params` blob NOT NULL, + `log_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`log_id`), + KEY `log_type_time` (`log_type`,`log_timestamp`), + KEY `log_actor_time` (`log_actor`,`log_timestamp`), + KEY `log_page_time` (`log_namespace`,`log_title`,`log_timestamp`), + KEY `log_times` (`log_timestamp`), + KEY `log_actor_type_time` (`log_actor`,`log_type`,`log_timestamp`), + KEY `log_page_id_time` (`log_page`,`log_timestamp`), + KEY `log_type_action` (`log_type`,`log_action`,`log_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_log_search` ( + `ls_field` varbinary(32) NOT NULL, + `ls_value` varbinary(255) NOT NULL, + `ls_log_id` int(10) unsigned NOT NULL DEFAULT 0, + PRIMARY KEY (`ls_field`,`ls_value`,`ls_log_id`), + KEY `ls_log_id` (`ls_log_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_module_deps` ( + `md_module` varbinary(255) NOT NULL, + `md_skin` varbinary(32) NOT NULL, + `md_deps` mediumblob NOT NULL, + PRIMARY KEY (`md_module`,`md_skin`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_oauth2_access_tokens` ( + `oaat_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oaat_identifier` varbinary(255) NOT NULL, + `oaat_expires` varbinary(14) NOT NULL, + `oaat_acceptance_id` int(10) unsigned NOT NULL, + `oaat_revoked` tinyint(4) NOT NULL DEFAULT 0, + PRIMARY KEY (`oaat_id`), + UNIQUE KEY `oaat_identifier` (`oaat_identifier`), + KEY `oaat_acceptance_id` (`oaat_acceptance_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_oauth_accepted_consumer` ( + `oaac_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oaac_wiki` varbinary(255) NOT NULL, + `oaac_user_id` int(10) unsigned NOT NULL, + `oaac_consumer_id` int(10) unsigned NOT NULL, + `oaac_access_token` varbinary(32) NOT NULL, + `oaac_access_secret` varbinary(32) NOT NULL, + `oaac_grants` blob NOT NULL, + `oaac_accepted` binary(14) NOT NULL, + `oaac_oauth_version` tinyint(4) NOT NULL DEFAULT 1, + PRIMARY KEY (`oaac_id`), + UNIQUE KEY `oaac_access_token` (`oaac_access_token`), + UNIQUE KEY `oaac_user_consumer_wiki` (`oaac_user_id`,`oaac_consumer_id`,`oaac_wiki`), + KEY `oaac_consumer_user` (`oaac_consumer_id`,`oaac_user_id`), + KEY `oaac_user_id` (`oaac_user_id`,`oaac_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_oauth_registered_consumer` ( + `oarc_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `oarc_consumer_key` varbinary(32) NOT NULL, + `oarc_name` varbinary(128) NOT NULL, + `oarc_user_id` int(10) unsigned NOT NULL, + `oarc_version` varbinary(32) NOT NULL, + `oarc_callback_url` blob NOT NULL, + `oarc_callback_is_prefix` tinyblob DEFAULT NULL, + `oarc_description` blob NOT NULL, + `oarc_email` varbinary(255) NOT NULL, + `oarc_email_authenticated` binary(14) DEFAULT NULL, + `oarc_developer_agreement` tinyint(4) NOT NULL DEFAULT 0, + `oarc_owner_only` tinyint(4) NOT NULL DEFAULT 0, + `oarc_wiki` varbinary(32) NOT NULL, + `oarc_grants` blob NOT NULL, + `oarc_registration` binary(14) NOT NULL, + `oarc_secret_key` varbinary(32) DEFAULT NULL, + `oarc_rsa_key` blob DEFAULT NULL, + `oarc_restrictions` blob NOT NULL, + `oarc_stage` tinyint(3) unsigned NOT NULL DEFAULT 0, + `oarc_stage_timestamp` binary(14) NOT NULL, + `oarc_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `oarc_oauth_version` tinyint(4) NOT NULL DEFAULT 1, + `oarc_oauth2_allowed_grants` blob DEFAULT NULL, + `oarc_oauth2_is_confidential` tinyint(4) NOT NULL DEFAULT 1, + PRIMARY KEY (`oarc_id`), + UNIQUE KEY `oarc_consumer_key` (`oarc_consumer_key`), + UNIQUE KEY `oarc_name_version_user` (`oarc_name`,`oarc_user_id`,`oarc_version`), + KEY `oarc_user_id` (`oarc_user_id`), + KEY `oarc_stage_timestamp` (`oarc_stage`,`oarc_stage_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_objectcache` ( + `keyname` varbinary(255) NOT NULL DEFAULT '', + `value` mediumblob DEFAULT NULL, + `exptime` binary(14) NOT NULL, + `modtoken` varbinary(17) NOT NULL DEFAULT '00000000000000000', + `flags` int(10) unsigned DEFAULT NULL, + PRIMARY KEY (`keyname`), + KEY `exptime` (`exptime`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_oldimage` ( + `oi_name` varbinary(255) NOT NULL DEFAULT '', + `oi_archive_name` varbinary(255) NOT NULL DEFAULT '', + `oi_size` bigint(20) unsigned NOT NULL DEFAULT 0, + `oi_width` int(11) NOT NULL DEFAULT 0, + `oi_height` int(11) NOT NULL DEFAULT 0, + `oi_bits` int(11) NOT NULL DEFAULT 0, + `oi_description_id` bigint(20) unsigned NOT NULL, + `oi_actor` bigint(20) unsigned NOT NULL, + `oi_timestamp` binary(14) NOT NULL, + `oi_metadata` mediumblob NOT NULL, + `oi_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE','3D') DEFAULT NULL, + `oi_major_mime` enum('unknown','application','audio','image','text','video','message','model','multipart','chemical') NOT NULL DEFAULT 'unknown', + `oi_minor_mime` varbinary(100) NOT NULL DEFAULT 'unknown', + `oi_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `oi_sha1` varbinary(32) NOT NULL DEFAULT '', + KEY `oi_actor_timestamp` (`oi_actor`,`oi_timestamp`), + KEY `oi_name_timestamp` (`oi_name`,`oi_timestamp`), + KEY `oi_name_archive_name` (`oi_name`,`oi_archive_name`(14)), + KEY `oi_sha1` (`oi_sha1`(10)), + KEY `oi_timestamp` (`oi_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_page` ( + `page_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `page_namespace` int(11) NOT NULL, + `page_title` varbinary(255) NOT NULL, + `page_is_redirect` tinyint(3) unsigned NOT NULL DEFAULT 0, + `page_is_new` tinyint(3) unsigned NOT NULL DEFAULT 0, + `page_random` double unsigned NOT NULL, + `page_touched` binary(14) NOT NULL, + `page_links_updated` binary(14) DEFAULT NULL, + `page_latest` int(10) unsigned NOT NULL, + `page_len` int(10) unsigned NOT NULL, + `page_content_model` varbinary(32) DEFAULT NULL, + `page_lang` varbinary(35) DEFAULT NULL, + PRIMARY KEY (`page_id`), + UNIQUE KEY `page_name_title` (`page_namespace`,`page_title`), + KEY `page_random` (`page_random`), + KEY `page_len` (`page_len`), + KEY `page_redirect_namespace_len` (`page_is_redirect`,`page_namespace`,`page_len`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_pagelinks` ( + `pl_from` int(10) unsigned NOT NULL DEFAULT 0, + `pl_target_id` bigint(20) unsigned NOT NULL, + `pl_from_namespace` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`pl_from`,`pl_target_id`), + KEY `pl_target_id` (`pl_target_id`,`pl_from`), + KEY `pl_backlinks_namespace_target_id` (`pl_from_namespace`,`pl_target_id`,`pl_from`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_page_props` ( + `pp_page` int(10) unsigned NOT NULL, + `pp_propname` varbinary(60) NOT NULL, + `pp_value` blob NOT NULL, + `pp_sortkey` float DEFAULT NULL, + PRIMARY KEY (`pp_page`,`pp_propname`), + UNIQUE KEY `pp_propname_page` (`pp_propname`,`pp_page`), + UNIQUE KEY `pp_propname_sortkey_page` (`pp_propname`,`pp_sortkey`,`pp_page`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_page_restrictions` ( + `pr_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `pr_page` int(10) unsigned NOT NULL, + `pr_type` varbinary(60) NOT NULL, + `pr_level` varbinary(60) NOT NULL, + `pr_cascade` tinyint(4) NOT NULL, + `pr_expiry` varbinary(14) DEFAULT NULL, + PRIMARY KEY (`pr_id`), + UNIQUE KEY `pr_pagetype` (`pr_page`,`pr_type`), + KEY `pr_typelevel` (`pr_type`,`pr_level`), + KEY `pr_level` (`pr_level`), + KEY `pr_cascade` (`pr_cascade`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_protected_titles` ( + `pt_namespace` int(11) NOT NULL, + `pt_title` varbinary(255) NOT NULL, + `pt_user` int(10) unsigned NOT NULL, + `pt_reason_id` bigint(20) unsigned NOT NULL, + `pt_timestamp` binary(14) NOT NULL, + `pt_expiry` varbinary(14) NOT NULL, + `pt_create_perm` varbinary(60) NOT NULL, + PRIMARY KEY (`pt_namespace`,`pt_title`), + KEY `pt_timestamp` (`pt_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_querycache` ( + `qc_type` varbinary(32) NOT NULL, + `qc_value` int(10) unsigned NOT NULL DEFAULT 0, + `qc_namespace` int(11) NOT NULL DEFAULT 0, + `qc_title` varbinary(255) NOT NULL DEFAULT '', + KEY `qc_type` (`qc_type`,`qc_value`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_querycachetwo` ( + `qcc_type` varbinary(32) NOT NULL, + `qcc_value` int(10) unsigned NOT NULL DEFAULT 0, + `qcc_namespace` int(11) NOT NULL DEFAULT 0, + `qcc_title` varbinary(255) NOT NULL DEFAULT '', + `qcc_namespacetwo` int(11) NOT NULL DEFAULT 0, + `qcc_titletwo` varbinary(255) NOT NULL DEFAULT '', + KEY `qcc_type` (`qcc_type`,`qcc_value`), + KEY `qcc_title` (`qcc_type`,`qcc_namespace`,`qcc_title`), + KEY `qcc_titletwo` (`qcc_type`,`qcc_namespacetwo`,`qcc_titletwo`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_querycache_info` ( + `qci_type` varbinary(32) NOT NULL DEFAULT '', + `qci_timestamp` binary(14) NOT NULL DEFAULT '19700101000000', + PRIMARY KEY (`qci_type`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_recentchanges` ( + `rc_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `rc_timestamp` binary(14) NOT NULL, + `rc_actor` bigint(20) unsigned NOT NULL, + `rc_namespace` int(11) NOT NULL DEFAULT 0, + `rc_title` varbinary(255) NOT NULL DEFAULT '', + `rc_comment_id` bigint(20) unsigned NOT NULL, + `rc_minor` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_bot` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_new` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_cur_id` int(10) unsigned NOT NULL DEFAULT 0, + `rc_this_oldid` int(10) unsigned NOT NULL DEFAULT 0, + `rc_last_oldid` int(10) unsigned NOT NULL DEFAULT 0, + `rc_type` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_source` varbinary(16) NOT NULL DEFAULT '', + `rc_patrolled` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_ip` varbinary(40) NOT NULL DEFAULT '', + `rc_old_len` int(11) DEFAULT NULL, + `rc_new_len` int(11) DEFAULT NULL, + `rc_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rc_logid` int(10) unsigned NOT NULL DEFAULT 0, + `rc_log_type` varbinary(255) DEFAULT NULL, + `rc_log_action` varbinary(255) DEFAULT NULL, + `rc_params` blob DEFAULT NULL, + PRIMARY KEY (`rc_id`), + KEY `rc_timestamp` (`rc_timestamp`), + KEY `rc_namespace_title_timestamp` (`rc_namespace`,`rc_title`,`rc_timestamp`), + KEY `rc_cur_id` (`rc_cur_id`), + KEY `rc_new_name_timestamp` (`rc_new`,`rc_namespace`,`rc_timestamp`), + KEY `rc_ip` (`rc_ip`), + KEY `rc_ns_actor` (`rc_namespace`,`rc_actor`), + KEY `rc_actor` (`rc_actor`,`rc_timestamp`), + KEY `rc_name_type_patrolled_timestamp` (`rc_namespace`,`rc_type`,`rc_patrolled`,`rc_timestamp`), + KEY `rc_this_oldid` (`rc_this_oldid`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_redirect` ( + `rd_from` int(10) unsigned NOT NULL DEFAULT 0, + `rd_namespace` int(11) NOT NULL DEFAULT 0, + `rd_title` varbinary(255) NOT NULL DEFAULT '', + `rd_interwiki` varbinary(32) DEFAULT NULL, + `rd_fragment` varbinary(255) DEFAULT NULL, + PRIMARY KEY (`rd_from`), + KEY `rd_ns_title` (`rd_namespace`,`rd_title`,`rd_from`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_revision` ( + `rev_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `rev_page` int(10) unsigned NOT NULL, + `rev_comment_id` bigint(20) unsigned NOT NULL, + `rev_actor` bigint(20) unsigned NOT NULL, + `rev_timestamp` binary(14) NOT NULL, + `rev_minor_edit` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rev_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, + `rev_len` int(10) unsigned DEFAULT NULL, + `rev_parent_id` bigint(20) unsigned DEFAULT NULL, + `rev_sha1` varbinary(32) NOT NULL DEFAULT '', + PRIMARY KEY (`rev_id`), + KEY `rev_timestamp` (`rev_timestamp`), + KEY `rev_page_timestamp` (`rev_page`,`rev_timestamp`), + KEY `rev_actor_timestamp` (`rev_actor`,`rev_timestamp`,`rev_id`), + KEY `rev_page_actor_timestamp` (`rev_page`,`rev_actor`,`rev_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; +SET NAMES utf8mb4; + +CREATE TABLE `<>_searchindex` ( + `si_page` int(10) unsigned NOT NULL, + `si_title` mediumtext NOT NULL, + `si_text` mediumtext NOT NULL, + PRIMARY KEY (`si_page`), + FULLTEXT KEY `si_title` (`si_title`), + FULLTEXT KEY `si_text` (`si_text`) +) ENGINE=MyISAM DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci; + +CREATE TABLE `<>_sites` ( + `site_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `site_global_key` varbinary(64) NOT NULL, + `site_type` varbinary(32) NOT NULL, + `site_group` varbinary(32) NOT NULL, + `site_source` varbinary(32) NOT NULL, + `site_language` varbinary(35) NOT NULL, + `site_protocol` varbinary(32) NOT NULL, + `site_domain` varbinary(255) NOT NULL, + `site_data` blob NOT NULL, + `site_forward` tinyint(1) NOT NULL, + `site_config` blob NOT NULL, + PRIMARY KEY (`site_id`), + UNIQUE KEY `site_global_key` (`site_global_key`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_site_identifiers` ( + `si_type` varbinary(32) NOT NULL, + `si_key` varbinary(32) NOT NULL, + `si_site` int(10) unsigned NOT NULL, + PRIMARY KEY (`si_type`,`si_key`), + KEY `si_site` (`si_site`), + KEY `si_key` (`si_key`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_site_stats` ( + `ss_row_id` int(10) unsigned NOT NULL, + `ss_total_edits` bigint(20) unsigned DEFAULT NULL, + `ss_good_articles` bigint(20) unsigned DEFAULT NULL, + `ss_total_pages` bigint(20) unsigned DEFAULT NULL, + `ss_users` bigint(20) unsigned DEFAULT NULL, + `ss_active_users` bigint(20) unsigned DEFAULT NULL, + `ss_images` bigint(20) unsigned DEFAULT NULL, + PRIMARY KEY (`ss_row_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_slots` ( + `slot_revision_id` bigint(20) unsigned NOT NULL, + `slot_role_id` smallint(5) unsigned NOT NULL, + `slot_content_id` bigint(20) unsigned NOT NULL, + `slot_origin` bigint(20) unsigned NOT NULL, + PRIMARY KEY (`slot_revision_id`,`slot_role_id`), + KEY `slot_revision_origin_role` (`slot_revision_id`,`slot_origin`,`slot_role_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_slot_roles` ( + `role_id` int(11) NOT NULL AUTO_INCREMENT, + `role_name` varbinary(64) NOT NULL, + PRIMARY KEY (`role_id`), + UNIQUE KEY `role_name` (`role_name`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +INSERT INTO `<>_slot_roles` (`role_id`, `role_name`) VALUES +(1, UNHEX('6D61696E')); + +CREATE TABLE `<>_templatelinks` ( + `tl_from` int(10) unsigned NOT NULL DEFAULT 0, + `tl_target_id` bigint(20) unsigned NOT NULL, + `tl_from_namespace` int(11) NOT NULL DEFAULT 0, + PRIMARY KEY (`tl_from`,`tl_target_id`), + KEY `tl_target_id` (`tl_target_id`,`tl_from`), + KEY `tl_backlinks_namespace_target_id` (`tl_from_namespace`,`tl_target_id`,`tl_from`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_text` ( + `old_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `old_text` mediumblob NOT NULL, + `old_flags` tinyblob NOT NULL, + PRIMARY KEY (`old_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_updatelog` ( + `ul_key` varbinary(255) NOT NULL, + `ul_value` blob DEFAULT NULL, + PRIMARY KEY (`ul_key`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +INSERT INTO `<>_updatelog` (`ul_key`, `ul_value`) VALUES +(UNHEX('436F6E76657274446A76754D65746164617461'), NULL), +(UNHEX('44656C65746544656661756C744D65737361676573'), NULL), +(UNHEX('466978496E636F6E73697374656E74526564697265637473'), NULL), +(UNHEX('4D6564696157696B695C4D61696E74656E616E63655C4669784175746F626C6F636B4C6F675469746C6573'), NULL), +(UNHEX('4D696772617465426C6F636B73'), NULL), +(UNHEX('4D69677261746545787465726E616C6C696E6B73'), NULL), +(UNHEX('4D6967726174654C696E6B735461626C65706167656C696E6B73'), NULL), +(UNHEX('4D6967726174654C696E6B735461626C6574656D706C6174656C696E6B73'), NULL), +(UNHEX('4D6967726174655265766973696F6E4163746F7254656D70'), NULL), +(UNHEX('4D6967726174655265766973696F6E436F6D6D656E7454656D70'), NULL), +(UNHEX('506F70756C61746555736572497354656D70'), NULL), +(UNHEX('557064617465436F6C6C6174696F6E3A3A757070657263617365'), NULL), +(UNHEX('57696B69626173652D436C69656E742D7072696D65556E6578706563746564556E636F6E6E6563746564506167652D7633'), NULL), +(UNHEX('57696B69626173655C4C6578656D655C4D61696E74656E616E63655C4669785061676550726F7073536F72746B6579'), NULL), +(UNHEX('57696B69626173655C5265706F5C53746F72655C53716C5C4461746162617365536368656D61557064617465723A3A72656275696C6450726F70657274795465726D73'), NULL), +(UNHEX('6163636F756E745F72657175657374732D6163725F656D61696C2D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F436F6E6669726D4163636F756E742F696E636C756465732F6261636B656E642F736368656D612F6D7973716C2F70617463682D6163725F656D61696C2D766172636861722E73716C'), NULL), +(UNHEX('617263686976652D61725F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('617263686976652D61725F7469746C652D70617463682D617263686976652D61725F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('63617465676F72792D6361745F7469746C652D70617463682D63617465676F72792D6361745F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('63617465676F72796C696E6B732D636C5F746F2D70617463682D63617465676F72796C696E6B732D636C5F746F2D76617262696E6172792E73716C'), NULL), +(UNHEX('6368616E67655F7461672D63745F72635F69642D70617463682D6368616E67655F7461672D63745F72635F69642E73716C'), NULL), +(UNHEX('636C65616E757020656D7074792063617465676F72696573'), NULL), +(UNHEX('636F6E74656E745F6D6F64656C732D6D6F64656C5F69642D70617463682D636F6E74656E745F6D6F64656C732D6D6F64656C5F69642E73716C'), NULL), +(UNHEX('66696C65617263686976652D66615F64656C657465645F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('66696C65617263686976652D66615F69642D70617463682D66696C65617263686976652D66615F69642E73716C'), NULL), +(UNHEX('66696C65617263686976652D66615F6D616A6F725F6D696D652D70617463682D66615F6D616A6F725F6D696D652D6368656D6963616C2E73716C'), NULL), +(UNHEX('66696C65617263686976652D66615F6E616D652D70617463682D66696C65617263686976652D66615F6E616D652E73716C'), NULL), +(UNHEX('66696C65617263686976652D66615F73697A652D70617463682D66696C65617263686976652D66615F73697A655F746F5F626967696E742E73716C'), NULL), +(UNHEX('66696C65617263686976652D66615F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('696D6167652D696D675F6D616A6F725F6D696D652D70617463682D696D6167652D696D675F6D616A6F725F6D696D652D64656661756C742E73716C'), NULL), +(UNHEX('696D6167652D696D675F6D616A6F725F6D696D652D70617463682D696D675F6D616A6F725F6D696D652D6368656D6963616C2E73716C'), NULL), +(UNHEX('696D6167652D696D675F6E616D652D70617463682D696D6167652D696D675F6E616D652D76617262696E6172792E73716C'), NULL), +(UNHEX('696D6167652D696D675F73697A652D70617463682D696D6167652D696D675F73697A655F746F5F626967696E742E73716C'), NULL), +(UNHEX('696D6167652D696D675F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('696D6167652D696D675F74696D657374616D702D70617463682D696D6167652D696D675F74696D657374616D702E73716C'), NULL), +(UNHEX('696D6167656C696E6B732D696C5F746F2D70617463682D696D6167656C696E6B732D696C5F746F2D76617262696E6172792E73716C'), NULL), +(UNHEX('69705F6368616E6765732D6970635F7265765F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('6970626C6F636B735F7265737472696374696F6E732D69725F6970625F69642D70617463682D6970626C6F636B735F7265737472696374696F6E732D69725F6970625F69642E73716C'), NULL), +(UNHEX('6970626C6F636B735F7265737472696374696F6E732D69725F747970652D70617463682D6970626C6F636B735F7265737472696374696F6E732D69725F747970652E73716C'), NULL), +(UNHEX('6970626C6F636B735F7265737472696374696F6E732D69725F76616C75652D70617463682D6970626C6F636B735F7265737472696374696F6E732D69725F76616C75652E73716C'), NULL), +(UNHEX('69776C696E6B732D69776C5F7469746C652D70617463682D69776C696E6B732D69776C5F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('6A6F622D6A6F625F74696D657374616D702D70617463682D6A6F625F6A6F625F74696D657374616D702E73716C'), NULL), +(UNHEX('6A6F622D6A6F625F7469746C652D70617463682D6A6F622D6A6F625F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('6A6F622D6A6F625F746F6B656E5F74696D657374616D702D70617463682D6A6F625F6A6F625F746F6B656E5F74696D657374616D702E73716C'), NULL), +(UNHEX('6C616E676C696E6B732D6C6C5F7469746C652D70617463682D6C616E676C696E6B732D6C6C5F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('6C6F6767696E672D6C6F675F7469746C652D70617463682D6C6F6767696E672D6C6F675F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('6F617574685F61636365707465645F636F6E73756D65722D6F6161635F61636365707465642D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F4F417574682F736368656D612F6D7973716C2F70617463682D6F617574685F61636365707465645F636F6E73756D65722D74696D657374616D702E73716C'), NULL), +(UNHEX('6F617574685F726567697374657265645F636F6E73756D65722D6F6172635F656D61696C5F61757468656E746963617465642D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F4F417574682F736368656D612F6D7973716C2F70617463682D6F617574685F726567697374657265645F636F6E73756D65722D74696D657374616D702E73716C'), NULL), +(UNHEX('6F626A65637463616368652D65787074696D652D70617463682D6F626A65637463616368652D65787074696D652D6E6F746E756C6C2E73716C'), NULL), +(UNHEX('6F6C64696D6167652D6F695F6D616A6F725F6D696D652D70617463682D6F695F6D616A6F725F6D696D652D6368656D6963616C2E73716C'), NULL), +(UNHEX('6F6C64696D6167652D6F695F6E616D652D70617463682D6F6C64696D6167652D6F695F6E616D652D76617262696E6172792E73716C'), NULL), +(UNHEX('6F6C64696D6167652D6F695F73697A652D70617463682D6F6C64696D6167652D6F695F73697A655F746F5F626967696E742E73716C'), NULL), +(UNHEX('6F6C64696D6167652D6F695F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('706167652D706167655F6C696E6B735F757064617465642D70617463682D706167652D706167655F6C696E6B735F757064617465642D6E6F696E66696E6974652E73716C'), NULL), +(UNHEX('706167652D706167655F7469746C652D70617463682D706167652D706167655F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('706167652D706167655F746F75636865642D64726F7044656661756C74'), NULL), +(UNHEX('706167655F70726F70732D70705F706167652D70617463682D706167655F70726F70732D70705F706167652E73716C'), NULL), +(UNHEX('706167655F7265737472696374696F6E732D70725F706167652D70617463682D706167655F7265737472696374696F6E732D70725F706167652E73716C'), NULL), +(UNHEX('70726F7465637465645F7469746C65732D70745F6578706972792D64726F7044656661756C74'), NULL), +(UNHEX('70726F7465637465645F7469746C65732D70745F7469746C652D70617463682D70726F7465637465645F7469746C65732D70745F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('717565727963616368652D71635F7469746C652D70617463682D717565727963616368652D71635F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('7175657279636163686574776F2D7163635F7469746C652D70617463682D7175657279636163686574776F2D7163635F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('726563656E746368616E6765732D72635F69642D70617463682D726563656E746368616E6765732D72635F69642D626967696E742E73716C'), NULL), +(UNHEX('726563656E746368616E6765732D72635F69642D70617463682D726563656E746368616E6765732D72635F69642E73716C'), NULL), +(UNHEX('726563656E746368616E6765732D72635F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('726563656E746368616E6765732D72635F74696D657374616D702D70617463682D726563656E746368616E6765732D72635F74696D657374616D702E73716C'), NULL), +(UNHEX('726563656E746368616E6765732D72635F7469746C652D70617463682D726563656E746368616E6765732D72635F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('72656469726563742D72645F7469746C652D70617463682D72656469726563742D72645F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('7265766973696F6E2D7265765F69642D70617463682D7265766973696F6E2D636C65616E75702E73716C'), NULL), +(UNHEX('7265766973696F6E2D7265765F74696D657374616D702D64726F7044656661756C74'), NULL), +(UNHEX('736561726368696E6465782D706B2D7469746C656C656E677468'), NULL), +(UNHEX('736561726368696E6465782D7461626C656F7074696F6E2D757466386D6234'), NULL), +(UNHEX('736C6F745F726F6C65732D726F6C655F69642D70617463682D736C6F745F726F6C65732D726F6C655F69642E73716C'), NULL), +(UNHEX('75706C6F616473746173682D75735F73697A652D70617463682D75706C6F616473746173682D75735F73697A655F746F5F626967696E742E73716C'), NULL), +(UNHEX('75706C6F616473746173682D75735F74696D657374616D702D70617463682D75706C6F616473746173682D75735F74696D657374616D702E73716C'), NULL), +(UNHEX('757365722D757365725F65646974636F756E742D70617463682D757365722D757365725F65646974636F756E742E73716C'), NULL), +(UNHEX('757365722D757365725F6E616D652D70617463682D757365725F7461626C652D757064617465732E73716C'), NULL), +(UNHEX('757365725F666F726D65725F67726F7570732D7566675F67726F75702D70617463682D7566675F67726F75702D6C656E6774682D696E6372656173652D3235352E73716C'), NULL), +(UNHEX('757365725F67726F7570732D75675F67726F75702D70617463682D75675F67726F75702D6C656E6774682D696E6372656173652D3235352E73716C'), NULL), +(UNHEX('757365725F6E657774616C6B2D757365725F6C6173745F74696D657374616D702D70617463682D757365725F6E657774616C6B2D757365725F6C6173745F74696D657374616D702D62696E6172792E73716C'), NULL), +(UNHEX('757365725F70726F706572746965732D75705F70726F70657274792D70617463682D75705F70726F70657274792E73716C'), NULL), +(UNHEX('77617463686C6973742D776C5F6E6F74696669636174696F6E74696D657374616D702D70617463682D77617463686C6973742D776C5F6E6F74696669636174696F6E74696D657374616D702E73716C'), NULL), +(UNHEX('77617463686C6973742D776C5F7469746C652D70617463682D77617463686C6973742D776C5F7469746C652D76617262696E6172792E73716C'), NULL), +(UNHEX('77625F6368616E6765732D6368616E67655F696E666F2D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F57696B69626173652F7265706F2F696E636C756465732F53746F72652F53716C2F2E2E2F2E2E2F2E2E2F73716C2F6D7973716C2F61726368697665732F4D616B654368616E6765496E666F4C61726765722E73716C'), NULL), +(UNHEX('77625F6368616E6765732D6368616E67655F74696D652D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F57696B69626173652F7265706F2F696E636C756465732F53746F72652F53716C2F2E2E2F2E2E2F2E2E2F73716C2F6D7973716C2F61726368697665732F70617463682D77625F6368616E6765732D6368616E67655F74696D657374616D702E73716C'), NULL), +(UNHEX('77625F6974656D735F7065725F736974652D6970735F736974655F706167652D2F7661722F7777772F68746D6C2F772F657874656E73696F6E732F57696B69626173652F7265706F2F696E636C756465732F53746F72652F53716C2F2E2E2F2E2E2F2E2E2F73716C2F6D7973716C2F61726368697665732F4D616B6549707353697465506167654C61726765722E73716C'), NULL); + +CREATE TABLE `<>_uploadstash` ( + `us_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `us_user` int(10) unsigned NOT NULL, + `us_key` varbinary(255) NOT NULL, + `us_orig_path` varbinary(255) NOT NULL, + `us_path` varbinary(255) NOT NULL, + `us_source_type` varbinary(50) DEFAULT NULL, + `us_timestamp` binary(14) NOT NULL, + `us_status` varbinary(50) NOT NULL, + `us_chunk_inx` int(10) unsigned DEFAULT NULL, + `us_props` blob DEFAULT NULL, + `us_size` bigint(20) unsigned NOT NULL, + `us_sha1` varbinary(31) NOT NULL, + `us_mime` varbinary(255) DEFAULT NULL, + `us_media_type` enum('UNKNOWN','BITMAP','DRAWING','AUDIO','VIDEO','MULTIMEDIA','OFFICE','TEXT','EXECUTABLE','ARCHIVE','3D') DEFAULT NULL, + `us_image_width` int(10) unsigned DEFAULT NULL, + `us_image_height` int(10) unsigned DEFAULT NULL, + `us_image_bits` smallint(5) unsigned DEFAULT NULL, + PRIMARY KEY (`us_id`), + UNIQUE KEY `us_key` (`us_key`), + KEY `us_user` (`us_user`), + KEY `us_timestamp` (`us_timestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user` ( + `user_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `user_name` varbinary(255) NOT NULL DEFAULT '', + `user_real_name` varbinary(255) NOT NULL DEFAULT '', + `user_password` tinyblob NOT NULL, + `user_newpassword` tinyblob NOT NULL, + `user_newpass_time` binary(14) DEFAULT NULL, + `user_email` tinyblob NOT NULL, + `user_touched` binary(14) NOT NULL, + `user_token` binary(32) NOT NULL DEFAULT '\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0', + `user_email_authenticated` binary(14) DEFAULT NULL, + `user_email_token` binary(32) DEFAULT NULL, + `user_email_token_expires` binary(14) DEFAULT NULL, + `user_registration` binary(14) DEFAULT NULL, + `user_editcount` int(10) unsigned DEFAULT NULL, + `user_password_expires` varbinary(14) DEFAULT NULL, + `user_is_temp` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`user_id`), + UNIQUE KEY `user_name` (`user_name`), + KEY `user_email_token` (`user_email_token`), + KEY `user_email` (`user_email`(50)) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user_autocreate_serial` ( + `uas_shard` int(10) unsigned NOT NULL, + `uas_year` smallint(5) unsigned NOT NULL, + `uas_value` int(10) unsigned NOT NULL, + PRIMARY KEY (`uas_shard`,`uas_year`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user_former_groups` ( + `ufg_user` int(10) unsigned NOT NULL DEFAULT 0, + `ufg_group` varbinary(255) NOT NULL DEFAULT '', + PRIMARY KEY (`ufg_user`,`ufg_group`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user_groups` ( + `ug_user` int(10) unsigned NOT NULL DEFAULT 0, + `ug_group` varbinary(255) NOT NULL DEFAULT '', + `ug_expiry` varbinary(14) DEFAULT NULL, + PRIMARY KEY (`ug_user`,`ug_group`), + KEY `ug_group` (`ug_group`), + KEY `ug_expiry` (`ug_expiry`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user_newtalk` ( + `user_id` int(10) unsigned NOT NULL DEFAULT 0, + `user_ip` varbinary(40) NOT NULL DEFAULT '', + `user_last_timestamp` binary(14) DEFAULT NULL, + KEY `un_user_id` (`user_id`), + KEY `un_user_ip` (`user_ip`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_user_properties` ( + `up_user` int(10) unsigned NOT NULL, + `up_property` varbinary(255) NOT NULL, + `up_value` blob DEFAULT NULL, + PRIMARY KEY (`up_user`,`up_property`), + KEY `up_property` (`up_property`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_watchlist` ( + `wl_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wl_user` int(10) unsigned NOT NULL, + `wl_namespace` int(11) NOT NULL DEFAULT 0, + `wl_title` varbinary(255) NOT NULL DEFAULT '', + `wl_notificationtimestamp` binary(14) DEFAULT NULL, + PRIMARY KEY (`wl_id`), + UNIQUE KEY `wl_user` (`wl_user`,`wl_namespace`,`wl_title`), + KEY `wl_namespace_title` (`wl_namespace`,`wl_title`), + KEY `wl_user_notificationtimestamp` (`wl_user`,`wl_notificationtimestamp`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_watchlist_expiry` ( + `we_item` int(10) unsigned NOT NULL, + `we_expiry` binary(14) NOT NULL, + PRIMARY KEY (`we_item`), + KEY `we_expiry` (`we_expiry`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbc_entity_usage` ( + `eu_row_id` bigint(20) NOT NULL AUTO_INCREMENT, + `eu_entity_id` varbinary(255) NOT NULL, + `eu_aspect` varbinary(37) NOT NULL, + `eu_page_id` int(11) NOT NULL, + PRIMARY KEY (`eu_row_id`), + UNIQUE KEY `eu_entity_id` (`eu_entity_id`,`eu_aspect`,`eu_page_id`), + KEY `eu_page_id` (`eu_page_id`,`eu_entity_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_item_terms` ( + `wbit_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `wbit_item_id` int(10) unsigned NOT NULL, + `wbit_term_in_lang_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`wbit_id`), + UNIQUE KEY `wbt_item_terms_term_in_lang_id_item_id` (`wbit_term_in_lang_id`,`wbit_item_id`), + KEY `wbt_item_terms_item_id` (`wbit_item_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_property_terms` ( + `wbpt_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wbpt_property_id` int(10) unsigned NOT NULL, + `wbpt_term_in_lang_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`wbpt_id`), + UNIQUE KEY `wbt_property_terms_term_in_lang_id_property_id` (`wbpt_term_in_lang_id`,`wbpt_property_id`), + KEY `wbt_property_terms_property_id` (`wbpt_property_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_term_in_lang` ( + `wbtl_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wbtl_type_id` int(10) unsigned NOT NULL, + `wbtl_text_in_lang_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`wbtl_id`), + UNIQUE KEY `wbt_term_in_lang_text_in_lang_id_lang_id` (`wbtl_text_in_lang_id`,`wbtl_type_id`), + KEY `wbt_term_in_lang_type_id_text_in` (`wbtl_type_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_text` ( + `wbx_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wbx_text` varbinary(255) NOT NULL, + PRIMARY KEY (`wbx_id`), + UNIQUE KEY `wbt_text_text` (`wbx_text`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_text_in_lang` ( + `wbxl_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wbxl_language` varbinary(20) NOT NULL, + `wbxl_text_id` int(10) unsigned NOT NULL, + PRIMARY KEY (`wbxl_id`), + UNIQUE KEY `wbt_text_in_lang_text_id_text_id` (`wbxl_text_id`,`wbxl_language`), + KEY `wbt_text_in_lang_language` (`wbxl_language`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wbt_type` ( + `wby_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `wby_name` varbinary(45) NOT NULL, + PRIMARY KEY (`wby_id`), + UNIQUE KEY `wbt_type_name` (`wby_name`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wb_changes` ( + `change_id` int(10) unsigned NOT NULL AUTO_INCREMENT, + `change_type` varbinary(25) NOT NULL, + `change_time` binary(14) NOT NULL, + `change_object_id` varbinary(14) NOT NULL, + `change_revision_id` int(10) unsigned NOT NULL, + `change_user_id` int(10) unsigned NOT NULL, + `change_info` mediumblob NOT NULL, + PRIMARY KEY (`change_id`), + KEY `wb_changes_change_time` (`change_time`), + KEY `wb_changes_change_revision_id` (`change_revision_id`), + KEY `change_object_id` (`change_object_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wb_changes_subscription` ( + `cs_row_id` bigint(20) NOT NULL AUTO_INCREMENT, + `cs_entity_id` varbinary(255) NOT NULL, + `cs_subscriber_id` varbinary(255) NOT NULL, + PRIMARY KEY (`cs_row_id`), + UNIQUE KEY `cs_entity_id` (`cs_entity_id`,`cs_subscriber_id`), + KEY `cs_subscriber_id` (`cs_subscriber_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wb_id_counters` ( + `id_type` varbinary(32) NOT NULL, + `id_value` int(10) unsigned NOT NULL, + PRIMARY KEY (`id_type`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wb_items_per_site` ( + `ips_row_id` bigint(20) unsigned NOT NULL AUTO_INCREMENT, + `ips_item_id` int(10) unsigned NOT NULL, + `ips_site_id` varbinary(32) NOT NULL, + `ips_site_page` varbinary(310) NOT NULL, + PRIMARY KEY (`ips_row_id`), + UNIQUE KEY `wb_ips_item_site_page` (`ips_site_id`,`ips_site_page`), + KEY `wb_ips_item_id` (`ips_item_id`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; + +CREATE TABLE `<>_wb_property_info` ( + `pi_property_id` int(10) unsigned NOT NULL, + `pi_type` varbinary(32) NOT NULL, + `pi_info` blob NOT NULL, + PRIMARY KEY (`pi_property_id`), + KEY `pi_type` (`pi_type`) +) ENGINE=InnoDB DEFAULT CHARSET=binary; +-- 2025-02-19 14:28:01 From a9dacf27719d9cfd62b2eadda9f5d1cc0cab9544 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Thu, 20 Feb 2025 14:57:49 +0000 Subject: [PATCH 2/5] Switch to database version mw1.43-wbs1 --- config/wbstack.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/wbstack.php b/config/wbstack.php index 74ba16e17..e5bf87b4c 100644 --- a/config/wbstack.php +++ b/config/wbstack.php @@ -5,8 +5,8 @@ 'ui_url' => env('WBSTACK_UI_URL', 'https://wbstack.com'), - 'wiki_db_provision_version' => env('WBSTACK_WIKI_DB_PROVISION_VERSION', 'mw1.39-wbs1'), - 'wiki_db_use_version' => env('WBSTACK_WIKI_DB_USE_VERSION', 'mw1.39-wbs1'), + 'wiki_db_provision_version' => env('WBSTACK_WIKI_DB_PROVISION_VERSION', 'mw1.43-wbs1'), + 'wiki_db_use_version' => env('WBSTACK_WIKI_DB_USE_VERSION', 'mw1.43-wbs1'), 'wiki_hard_delete_threshold' => env('WBSTACK_HARD_DELETE_THRESHOLD', 30), 'wiki_max_per_user' => env('WBSTACK_MAX_PER_USER', false), From 8a07485bddd94ffe4ce7d299a5b3e9a424d33c04 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Mon, 21 Jul 2025 14:18:05 +0000 Subject: [PATCH 3/5] Update database script --- database/mw/README.md | 2 +- database/mw/new/mw1.43-wbs1.sql | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/database/mw/README.md b/database/mw/README.md index 007008476..8090b4e5a 100644 --- a/database/mw/README.md +++ b/database/mw/README.md @@ -79,7 +79,7 @@ cd ./w/extensions/ && ls -dm * | tr -d ' ' | tr -d \\n && cd ./../../ This is an example install command with `WikibaseEdtf` excluded: ``` -WBS_DOMAIN=maint php ./w/maintenance/install.php --dbserver sql-clean --dbuser root --dbpass toor --dbname wiki --extensions AdvancedSearch,Auth_remoteuser,CirrusSearch,Cite,CodeEditor,CodeMirror,ConfirmAccount,ConfirmEdit,DeleteBatch,DismissableSiteNotice,Echo,Elastica,EmbedVideo,EntitySchema,Gadgets,InviteSignup,JsonConfig,Kartographer,Mailgun,Math,MobileFrontend,MultimediaViewer,Nuke,OAuth,PageImages,ParserFunctions,Poem,RevisionSlider,Score,Scribunto,SecureLinkFixer,SpamBlacklist,StopForumSpam,SyntaxHighlight_GeSHi,TemplateData,TemplateSandbox,TextExtracts,Thanks,ThatSrc,TorBlock,TwoColConflict,UniversalLanguageSelector,VisualEditor,WikiEditor,WikiHiero,Wikibase,WikibaseCirrusSearch,WikibaseExampleData,WikibaseInWikitext,WikibaseLexeme,WikibaseLexemeCirrusSearch,WikibaseManifest,cldr --pass AdminPass0 SiteName AdminName +WBS_DOMAIN=maint php ./w/maintenance/install.php --dbserver sql-clean --dbuser root --dbpass toor --dbname wiki --extensions AdvancedSearch,CirrusSearch,Cite,CodeEditor,CodeMirror,ConfirmAccount,ConfirmEdit,DeleteBatch,Echo,Elastica,EmbedVideo,EntitySchema,Gadgets,InviteSignup,JsonConfig,Kartographer,Mailgun,Math,MobileFrontend,MultimediaViewer,Nuke,OAuth,PageImages,ParserFunctions,Poem,RevisionSlider,Score,Scribunto,SecureLinkFixer,SpamBlacklist,StopForumSpam,SyntaxHighlight_GeSHi,TemplateData,TemplateSandbox,TextExtracts,Thanks,ThatSrc,TorBlock,TwoColConflict,UniversalLanguageSelector,VisualEditor,WikiEditor,WikiHiero,Wikibase,WikibaseCirrusSearch,WikibaseInWikitext,WikibaseLexeme,WikibaseLexemeCirrusSearch,WikibaseManifest,cldr --pass AdminPass0 SiteName AdminName ``` **While** https://phabricator.wikimedia.org/T267809 is broken you'll then need to edit the auto generated LocalSettings.php file... diff --git a/database/mw/new/mw1.43-wbs1.sql b/database/mw/new/mw1.43-wbs1.sql index 39678bd4e..355d03ff5 100644 --- a/database/mw/new/mw1.43-wbs1.sql +++ b/database/mw/new/mw1.43-wbs1.sql @@ -409,7 +409,7 @@ INSERT INTO `<>_interwiki` (`iw_prefix`, `iw_url`, `iw_api`, `iw_wikiid` (UNHEX('6F656973'), 'https://oeis.org/$1', '', UNHEX(''), 0, 0), (UNHEX('706D6964'), 'https://www.ncbi.nlm.nih.gov/pubmed/$1?dopt=Abstract', '', UNHEX(''), 0, 0), (UNHEX('707974686F6E696E666F'), 'https://wiki.python.org/moin/$1', '', UNHEX(''), 0, 0), -(UNHEX('726663'), 'https://tools.ietf.org/html/rfc$1', '', UNHEX(''), 0, 0), +(UNHEX('726663'), 'https://datatracker.ietf.org/doc/html/rfc$1', '', UNHEX(''), 0, 0), (UNHEX('73656E736569736C696272617279'), 'https://senseis.xmp.net/?$1', '', UNHEX(''), 0, 0), (UNHEX('73686F757477696B69'), 'https://www.shoutwiki.com/wiki/$1', 'https://www.shoutwiki.com/w/api.php', UNHEX(''), 0, 0), (UNHEX('7468656F7065646961'), 'https://www.theopedia.com/$1', '', UNHEX(''), 0, 0), @@ -436,10 +436,10 @@ INSERT INTO `<>_interwiki` (`iw_prefix`, `iw_url`, `iw_api`, `iw_wikiid` CREATE TABLE `<>_invitesignup` ( `is_hash` varbinary(40) NOT NULL, `is_inviter` int(10) unsigned NOT NULL, - `is_invitee` int(10) unsigned NOT NULL, + `is_invitee` int(10) unsigned DEFAULT NULL, `is_email` varbinary(255) NOT NULL, `is_when` binary(14) NOT NULL, - `is_used` binary(14) NOT NULL, + `is_used` binary(14) DEFAULT NULL, `is_groups` longblob NOT NULL, PRIMARY KEY (`is_hash`) ) ENGINE=InnoDB DEFAULT CHARSET=binary; @@ -796,7 +796,6 @@ CREATE TABLE `<>_revision` ( KEY `rev_actor_timestamp` (`rev_actor`,`rev_timestamp`,`rev_id`), KEY `rev_page_actor_timestamp` (`rev_page`,`rev_actor`,`rev_timestamp`) ) ENGINE=InnoDB DEFAULT CHARSET=binary; -SET NAMES utf8mb4; CREATE TABLE `<>_searchindex` ( `si_page` int(10) unsigned NOT NULL, @@ -1182,4 +1181,4 @@ CREATE TABLE `<>_wb_property_info` ( PRIMARY KEY (`pi_property_id`), KEY `pi_type` (`pi_type`) ) ENGINE=InnoDB DEFAULT CHARSET=binary; --- 2025-02-19 14:28:01 +-- 2025-07-21 12:14:54 From 6a96b7fa03e0a42695d1fcd28467c50694922e11 Mon Sep 17 00:00:00 2001 From: Perside Rosalie Date: Wed, 3 Sep 2025 10:20:18 +0200 Subject: [PATCH 4/5] Update mw1.43-wbs1.sql (#968) --- database/mw/new/mw1.43-wbs1.sql | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/database/mw/new/mw1.43-wbs1.sql b/database/mw/new/mw1.43-wbs1.sql index 355d03ff5..40ca91840 100644 --- a/database/mw/new/mw1.43-wbs1.sql +++ b/database/mw/new/mw1.43-wbs1.sql @@ -317,7 +317,7 @@ CREATE TABLE `<>_filearchive` ( `fa_storage_group` varbinary(16) DEFAULT NULL, `fa_storage_key` varbinary(64) DEFAULT '', `fa_deleted_user` int(11) DEFAULT NULL, - `fa_deleted_timestamp` binary(14), + `fa_deleted_timestamp` binary(14) DEFAULT NULL, `fa_deleted_reason_id` bigint(20) unsigned NOT NULL, `fa_size` bigint(20) unsigned DEFAULT 0, `fa_width` int(11) DEFAULT 0, @@ -329,7 +329,7 @@ CREATE TABLE `<>_filearchive` ( `fa_minor_mime` varbinary(100) DEFAULT 'unknown', `fa_description_id` bigint(20) unsigned NOT NULL, `fa_actor` bigint(20) unsigned NOT NULL, - `fa_timestamp` binary(14), + `fa_timestamp` binary(14) DEFAULT NULL, `fa_deleted` tinyint(3) unsigned NOT NULL DEFAULT 0, `fa_sha1` varbinary(32) NOT NULL DEFAULT '', PRIMARY KEY (`fa_id`), @@ -1181,4 +1181,4 @@ CREATE TABLE `<>_wb_property_info` ( PRIMARY KEY (`pi_property_id`), KEY `pi_type` (`pi_type`) ) ENGINE=InnoDB DEFAULT CHARSET=binary; --- 2025-07-21 12:14:54 +-- 2025-09-02 09:54:08 From ce89c025620223e7fd8f92eaa5c317fbae521393 Mon Sep 17 00:00:00 2001 From: Andrew Kostka Date: Wed, 3 Sep 2025 10:21:35 +0200 Subject: [PATCH 5/5] Update database/mw/README.md Co-authored-by: Ollie <43674967+outdooracorn@users.noreply.github.com> --- database/mw/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/database/mw/README.md b/database/mw/README.md index 8090b4e5a..1fb79aaff 100644 --- a/database/mw/README.md +++ b/database/mw/README.md @@ -32,7 +32,7 @@ Make sure you have updated the docker-compose-clean.yml to: **Preparing the MediaWiki image:** -Checkout the [wbstack/mediawiki](https://github.com/wbstack/mediawiki) repository and navigate to it. +Checkout the [wbstack/mediawiki](https://github.com/wbstack/mediawiki) pull request for the new version of MediaWiki you want to build the sql file for and navigate to it. Remove any empty extension directories generated by the sync script. You can use the following command to help locate them if they exist: