Manuel:Sql.php
Version de MediaWiki : | ≥ 1.10 |
Fichier MediaWiki : sql.php | |
---|---|
Emplacement : | maintenance/ |
Code source : | master • 1.42.1 • 1.41.2 • 1.39.8 |
Classes : | MwSql |
sql.php est un fichier de maintenance qui permet de faire des requêtes SQL.
Si le premier argument passé est un fichier SQL, il va remplacer les commentaires du code spécifique de MediaWiki tels que /*_*/
pour le préfixe de la base de données configurée (entre autre).
Si vous ne fournissez pas de fichier, alors vous pouvez interroger la base de données de manière interactive, de la même façon que l'outil de commande MySQL en mode ligne.
Ce script est souvent utilisé si vous voulez mettre à jour MediaWiki, et que vous avez une grande configuration de bases de données master/réplicats et que vous ne voulez pas d'interruption.
Au lieu d'utiliser update.php, vous pouvez utiliser sql.php pour appliquer les correctifs individuels de la base de données du répertoire maintenance/archives
sur chaque serveur sql séparément, sortant de la rotation les serveurs individuels alors que s'effectuent les modifications du schéma.
Habituellement vous devez faire ceci que si vous y êtes contraint - les utilisateurs doivent utiliser le script update.php à la place.
Options/Arguments
Les options disponibles pour ce script à partir de la ligne de commande sont :
Option | Description | Nécessaire ? |
---|---|---|
--query | Exécuter une seule requête plutôt qu'en interactif | optionnel |
--json | Fournir les résultats en JSON plutôt que des objets PHP | optionnel |
--status | Renvoyer le code de succès uniquement si la requête s'est bien réalisée (lignes sélectionnées ou modifiées), sinon 1 pour les erreurs, 2 pour aucune ligne trouvée | optionnel |
--cluster | Permet de fournir un nom de grappe pour la commande. | optionnel |
--wikidb | Permet qu'une base de données différente soit utilisée dans la commande par ID s'il ne s'agit pas de la base actuelle. | optionnel |
--replicadb | Serveur de base de données de réplication à utiliser à la place de la base de données primaire - peut être quelconque (any) | optionnel |
Utilisation
php maintenance/sql.php [ --query| --json| --status| --cluster| --wikidb| --replicadb ]
Mode interactif
$ php maintenance/sql.php >
Requête en ligne
$ php maintenance/sql.php --query "SELECT user_name from user;" --json [ { "user_name": "Delete page script" }, { "user_name": "Foo" }, { "user_name": "Maintenance script" }, { "user_name": "MediaWiki default" }, { "user_name": "ScriptImporter" } ]
Appliquer des correctifs
$ php maintenance/sql.php maintenance/archives/patch-actor-table.sql Query OK, 0 row(s) affected Query OK, 0 row(s) affected Query OK, 0 row(s) affected