Manual:SQL パッチ ファイル
このページは廃止されました。アーカイブ (過去ログ) 目的で保持されています。 廃止された/サポート対象外となった機能について説明している場合があります。 このページの情報が最新とは限らないため、依存しないでください。 |
コア (開発の方針#データベースのパッチ、Manual: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);
変数の置換
最初の 2 つは、上記の例のように、パッチ ファイルで使用する必要があります。
/*_*/
は $wgDBprefix に置換されます。/*i*/
はインデックスの識別に使用されるため、インデックス別名システムを介してその名前を変更できます。 (これは少数のコア テーブルでのみ使用され、MediaWiki 1.35 で除去されたため、実際には違いはありません。)/*$wgDBTableOptions*/
は $wgDBTableOptions の値に置換されます。/*$wgDBTableOptions*/
は MySQL データベース バックエンドにのみ使用されます。
他にも変数の置換がありますが、実際には使用されません。 完全な一覧は、Database::replaceVars() の説明文書を参照してください。
外部リンク
- MySQL dev docs, CREATE TABLE
- MySQL dev docs, ALTER TABLE - 列の追加、変更、削除に使用されます