[[createdb]]
== Database Setup

During the init phase of Gerrit you will need to specify which database to use.

[[createdb_h2]]
=== H2

If you choose H2, Gerrit will automatically set up the embedded H2 database as
backend so no set up or configuration is necessary.

Using the embedded H2 database is the easiest way to get a Gerrit
site up and running, making it ideal for proof of concepts or small team
servers.  On the flip side, H2 is not the recommended option for large
corporate installations. This is because there is no easy way to interact
with the database while Gerrit is offline, it's not easy to backup the data,
and it's not possible to set up H2 in a load balanced/hotswap configuration.

If this option interests you, you might want to consider link:install-quick.html[the quick guide].

[[createdb_postgres]]
=== PostgreSQL

This option is more complicated than the H2 option but is recommended
for larger installations. It's the database backend with the largest userbase
in the Gerrit community.

Create a user for the web application within Postgres, assign it a
password, create a database to store the metadata, and grant the user
full rights on the newly created database:

----
  $ createuser --username=postgres -RDIElPS gerrit2
  $ createdb --username=postgres -E UTF-8 -O gerrit2 reviewdb
----

Visit PostgreSQL's link:http://www.postgresql.org/docs/9.1/interactive/index.html[documentation] for further information regarding
using PostgreSQL.

[[createdb_mysql]]
=== MySQL

This option is also more complicated than the H2 option. Just as with
PostgreSQL it's also recommended for larger installations.

Create a user for the web application within the database, assign it a
password, create a database, and give the newly created user full
rights on it:

----
  mysql

  CREATE USER 'gerrit2'@'localhost' IDENTIFIED BY 'secret';
  CREATE DATABASE reviewdb;
  GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
  FLUSH PRIVILEGES;
----

If you are using the MyISAM engine, you need to set latin1 as charset:

----
  mysql

  ALTER DATABASE reviewdb charset=latin1;
----

Visit MySQL's link:http://dev.mysql.com/doc/[documentation] for further
information regarding using MySQL.

[[createdb_oracle]]
=== Oracle

PostgreSQL or H2 is the recommended database for Gerrit Code Review.
Oracle is supported for environments where running on an existing Oracle
installation simplifies administrative overheads, such as database backups.

Create a user for the web application within sqlplus, assign it a
password, and grant the user full rights on the newly created database:

----
  SQL> create user gerrit2 identified by secret_password default tablespace users;
  SQL> grant connect, resources to gerrit2;
----

JDBC driver ojdbc6.jar must be obtained from your Oracle distribution. Gerrit
initialization process tries to copy it from a known location:

----
/u01/app/oracle/product/11.2.0/xe/jdbc/lib/ojdbc6.jar
----

If this file can not be located at this place, then the alternative location
can be provided.

Instance name is the Oracle SID. Sample database section in
$site_path/etc/gerrit.config:

----
[database]
        type = oracle
        instance = xe
        hostname = localhost
        username = gerrit2
        port = 1521
----

Sample database section in $site_path/etc/secure.config:

----
[database]
        password = secret_pasword
----


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

SEARCHBOX
---------
