Manuel:Sql.php

This page is a translated version of the page Manual:Sql.php and the translation is 100% complete.
Version de MediaWiki :
1.10

Avertissement Avertissement : Depuis MediaWiki 1.28, sql.php peut avoir des effets de bord. Veuillez vous assurer d'avoir exécuté update.php et que rien n'a été cassé avant de lancer ce script!

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

Terminal
$ php maintenance/sql.php

>

Requête en ligne

Terminal
$ 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

Terminal
$ 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

Voir aussi