Manual:Sql.php

From mediawiki.org
This page is a translated version of the page Manual:Sql.php and the translation is 18% complete.
Outdated translations are marked like this.
Other languages:
Versão MediaWiki:
1.10

Atenção Atenção: Since MediaWiki 1.28, sql.php may have some side effect. Please make sure you have run update.php and things do not break before running this script!

sql.php é um arquivo de manutenção que executa consultas SQL de um arquivo específico para o banco de dados. If you give an SQL file as the first argument, it will replace MediaWiki specific code comments like /*_*/ for the configured database prefix (among others). If you don't give it a file, then you can query the database in an interactive fashion, similar to the MySQL command line tool.

This script is often used if you want to upgrade MediaWiki, but have a large, master/replica-database setup and don't want any downtime. Instead of using update.php, you might use sql.php to apply database individual patches from maintenance/archives directory on each sql server separately, taking the individual server out of rotation while the schema change runs. Generally you should only do this if you have to - most users should use the update.php script instead.

As opções disponíveis para este script a partir da linha de comando são:

Option Description Required?
--query Run a single query instead of running interactively Optional
--json Output the results as JSON instead of PHP objects Optional
--status Return successful exit status only if the query succeeded (selected or altered rows), otherwise 1 for errors, 2 for no rows Optional
--cluster Permite que um nome de cluster seja fornecido para o comando. Optional
--wikidb Permite a um banco de dados diferente ser usado no comando pela ID, se não for o banco de dados atual. Optional
--replicadb Replica DB server to use instead of the primary DB (can be "any") Optional

Usage

php maintenance/sql.php [ --query| --json| --status| --cluster| --wikidb| --replicadb ]

Interative mode

Terminal
$ php maintenance/sql.php

>

Inline query

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"
    }
]

Applying patches

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

See also