= gerrit gsql

== NAME
gerrit gsql - Administrative interface to active database

== SYNOPSIS
--
'ssh' -p <port> <host> 'gerrit gsql'
  [--format {PRETTY | JSON | JSON_SINGLE}]
  [-c QUERY]
--

== DESCRIPTION
Provides interactive query support directly against the underlying
SQL database used by the host Gerrit server.  All SQL statements
are supported, including SELECT, UPDATE, INSERT, DELETE and ALTER.

== OPTIONS
--format::
	Set the format records are output in.  In PRETTY (the
	default) records are displayed in a tabular output suitable
	for reading by a human on a sufficiently wide terminal.
	In JSON mode records are output as JSON objects using the
	column names as the property names, one object per line.
	In JSON_SINGLE mode the whole result set is output as a
	single JSON object.

-c::
	Execute the single query statement supplied, and then exit.

== ACCESS
Caller must have been granted the
link:access-control.html#capability_accessDatabase[Access Database]
global capability.

== SCRIPTING
Intended for interactive use only, unless format is JSON, or
JSON_SINGLE.

== EXAMPLES
To manually correct a user's SSH user name:

====
	$ ssh -p 29418 review.example.com gerrit gsql
	Welcome to Gerrit Code Review v2.0.25
	(PostgreSQL 8.3.8)

	Type '\h' for help.  Type '\r' to clear the buffer.

	gerrit> update accounts set ssh_user_name = 'alice' where account_id=1;
	UPDATE 1; 1 ms
	gerrit> \q
	Bye

	$ ssh -p 29418 review.example.com gerrit flush-caches --cache sshkeys --cache accounts
====

GERRIT
------
Part of link:index.html[Gerrit Code Review]

SEARCHBOX
---------
