Jump to content
MediaWiki

Manual:sql.php

From mediawiki.org
MediaWiki version:
≥ 1.10
MediaWiki file: sql.php
Location: maintenance/
Source code: master1.43.11.42.61.39.12
Classes: MwSql
Warning Warning: Since MediaWiki 1.28, sql.php may have some side effects. Please make sure you have run update.php and things do not break before running this script!

sql.php is a maintenance file which allows performing SQL queries. 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 sql/mysql 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.

Options/Arguments

[edit ]

Available options for this script from the command line are:

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 Allows a cluster name to be provided for the command. Optional
--wikidb Allows for a different database to be used in the command by ID if not the current database. Optional
--replicadb Replica DB server to use instead of the primary DB (can be "any") Optional

Usage

[edit ]
phpmaintenance/run.phpsql[--query|--json|--status|--cluster|--wikidb|--replicadb]
In MediaWiki version 1.39.12 and earlier, you must invoke maintenance scripts using php maintenance/scriptName.php instead of php maintenance/run.php scriptName.

Interactive mode

[edit ]
Terminal
$ php maintenance/run.php sql
>

Inline query

[edit ]
Terminal
$ php maintenance/run.php sql --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

[edit ]
Terminal
$ php maintenance/run.php sql sql/mysql/patch-actor-table.sql
Query OK, 0 row(s) affected
Query OK, 0 row(s) affected
Query OK, 0 row(s) affected

See also

[edit ]

AltStyle によって変換されたページ (->オリジナル) /