init
====

NAME
----
init - Initialize a new Gerrit server installation

SYNOPSIS
--------
[verse]
'java' -jar gerrit.war 'init'
	-d <SITE_PATH>
	[\--batch]
	[\--no-auto-start]

DESCRIPTION
-----------
Creates a new Gerrit server installation, interactively prompting
for some basic setup prior to writing default configuration files
into a newly created `$site_path`.

If run in an existing `$site_path`, init will upgrade some resources
as necessary.

OPTIONS
-------
\--batch::
	Run in batch mode, skipping interactive prompts.  Reasonable
	configuration defaults are chosen based on the whims of
	the Gerrit developers.
+
If during a schema migration unused objects (e.g. tables, columns)
are detected they are *not* automatically dropped, but only a list of
SQL statements to drop these objects is provided. To drop the unused
objects these SQL statements have to be executed manually.

\--no-auto-start::
	Don't automatically start the daemon after initializing a
	newly created site path.  This permits the administrator
	to inspect and modify the configuration before the daemon
	is started.

-d::
\--site-path::
	Location of the gerrit.config file, and all other per-site
	configuration data, supporting libraries and log files.

CONTEXT
-------
This command can only be run on a server which has direct
connectivity to the metadata database, and local access to the
managed Git repositories.

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