手册:SQL补丁文件
此页面已过时。其仅作为历史记录保留。 它可能记载废弃的和/或不再支持的扩展或功能。 不要认为这里的信息是最新的。 |
您可以为核心中的模式更改(参见发展政策#数据库补丁,手册:DatabaseUpdater.php )或扩展(参见Manual:Hooks/LoadExtensionSchemaUpdates )编写一个SQL文件。 另见一般数据库编码约定。
示例
用于创建表的SQL文件可能如下所示:
CREATE TABLE /*_*/foo_bar(
-- Primary key
fb_id int unsigned NOT NULL PRIMARY KEY AUTO_INCREMENT,
-- user.user_id of the user who foobared the wiki
fb_user int unsigned NOT NULL,
-- user.user_text of the user who foobared the wiki
fb_user_text varchar(255),
-- Timestamp of when the wiki was foobared
fb_timestamp varbinary(14) NOT NULL default NULL ''
)/*$wgDBTableOptions*/;
CREATE INDEX /*i*/fb_user ON /*_*/foo_bar (fb_user);
CREATE INDEX /*i*/fb_user_text ON /*_*/foo_bar (fb_user_text);
变量替换
前两个需要在补丁文件中使用,如上例所示。
/*_*/
将替换为$wgDBprefix 。/*i*/
用于标识索引,因此可以通过索引别名系统更改其名称。 (这只用于一小部分核心表,并且在MediaWiki 1.35中已被删除,因此在实践中这不会有任何影响。)/*$wgDBTableOptions*/
将替换值为$wgDBTableOptions 。/*$wgDBTableOptions*/
仅用于MySQL 数据库后端。
还有其他变量替换,但它们在实践中并未使用。 有关完整列表,请参阅Database::replaceVars()的文档。
外部链接
- MySQL dev docs, CREATE TABLE
- MySQL dev docs, ALTER TABLE - 用于添加、修改、删除列