[[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;
  ALTER DATABASE reviewdb charset=latin1;
  GRANT ALL ON reviewdb.* TO 'gerrit2'@'localhost';
  FLUSH PRIVILEGES;
----

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]
