Manuel:fichier correctif SQL
Appearance
Cette page est obsolète. Elle est conservée à titre d'archive. Elle peut contenir la documentation d'extensions ou des fonctionnalités qui sont obsolètes et/ou plus prises en charge. Ne vous fiez pas à l'état de mise à jour des informations présentes sur cette page. |
Vous pouvez écrire un fichier SQL soit pour modifier un schéma dans le noyau (voir les règles de développement pour les correctifs de la base de données, Manuel:DatabaseUpdater.php ) ou pour une extension (voir Manuel:Accroches/LoadExtensionSchemaUpdates ). Voir aussi les conventions générales de codage des bases de données.
Exemple
Un fichier SQL pour créer une table serait similaire à :
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);
Remplacement des variables
Les deux premiers doivent être utilisés dans les fichiers de correctifs, comme dans l'exemple ci-dessus.
/*_*/
sera remplacé par $wgDBprefix ./*i*/
est utilisé pour identifier les index pour que leur noms puissent être changés au travers du système des alias d'index. (Ceci n'a été utilisé que sur un petit nombre de tables noyau et a été supprimé dans MediaWiki 1.35, donc en pratique cela ne change rien.)/*$wgDBTableOptions*/
sera remplacé par la valeur de $wgDBTableOptions ./*$wgDBTableOptions*/
n'est utilisé que dans les moteurs des bases de données de MySQL .
Il existe d'autres remplacements de variables mais ils ne sont pas utilisés dans la pratique. Voir la documentation de Database::replaceVars() pour la liste complète.
Liens externes
- MySQL dev docs, CREATE TABLE
- MySQL dev docs, ALTER TABLE - Utilisé pour ajouter, modifier, supprimer des colonnes