| [[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] | 
 |  | 
 | SEARCHBOX | 
 | --------- |