Manuel:fichier correctif SQL

This page is a translated version of the page Manual:SQL patch file and the translation is 100% complete.

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