blob: 3f185d819d61f72e621240b313b4634a7575c8e4 [file] [log] [blame] [view]
[[createdb]]
## Database Setup
During the init phase of Gerrit you will need to specify which database
to use.
### 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, its not easy to
backup the data, and its not possible to set up H2 in a load
balanced/hotswap configuration.
If this option interests you, you might want to consider [the quick
guide](install-quick.html).
### Apache Derby
If Derby is selected, Gerrit will automatically set up the embedded
Derby database as backend so no set up or configuration is necessary.
Currently only support for embedded mode is added. There are two other
deployment options for Apache Derby that can be added later:
- [Derby Network Server (standalone
mode)](http://db.apache.org/derby/papers/DerbyTut/ns_intro.html#Network+Server+Options)
- [Embedded Server (hybrid
mode)](http://db.apache.org/derby/papers/DerbyTut/ns_intro.html#Embedded+Server)
### PostgreSQL
This option is more complicated than the H2 option but is recommended
for larger installations. Its the database backend with the largest
userbase in the Gerrit community.
Create a user for the web application within PostgreSQL, 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 gerrit
$ createdb --username=postgres -E UTF-8 -O gerrit reviewdb
```
Visit PostgreSQLs
[documentation](http://www.postgresql.org/docs/9.1/interactive/index.html)
for further information regarding using PostgreSQL.
### MySQL
Requirements: MySQL version 5.5 or later.
This option is also more complicated than the H2 option. Just as with
PostgreSQL its 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 'gerrit'@'localhost' IDENTIFIED BY 'secret';
CREATE DATABASE reviewdb;
GRANT ALL ON reviewdb.* TO 'gerrit'@'localhost';
FLUSH PRIVILEGES;
```
Visit MySQLs [documentation](http://dev.mysql.com/doc/) for further
information regarding using MySQL.
### MariaDB
Requirements: MariaDB version 5.5 or later.
Refer to MySQL section above how to create MariaDB database.
Visit MariaDBs [documentation](https://mariadb.com/kb/en/mariadb/) for
further information regarding using MariaDB.
### 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 gerrit identified by secret_password default tablespace users;
SQL> grant connect, resources to gerrit;
```
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 = gerrit
port = 1521
Sample database section in $site\_path/etc/secure.config:
[database]
password = secret_password
### SAP MaxDB
SAP MaxDB is a supported database for running Gerrit Code Review.
However it is recommended only for environments where you intend to run
Gerrit on an existing MaxDB installation to reduce administrative
overhead.
In the MaxDB studio or using the SQLCLI command line interface create a
user *gerrit* with the user class *RESOURCE* and a password \<secret
password\>. This will also create an associated schema on the database.
To run Gerrit on MaxDB, you need to obtain the MaxDB JDBC driver. It can
be found in your MaxDB installation at the following location:
- on Windows 64bit at "C:\\Program
Files\\sdb\\MaxDB\\runtime\\jar\\sapdbc.jar"
- on Linux at "/opt/sdb/MaxDB/runtime/jar/sapdbc.jar"
It needs to be stored in the *lib* folder of the review site.
In the following sample database section it is assumed that the database
name is *reviewdb* and the database is installed on localhost:
In $site\_path/etc/gerrit.config:
[database]
type = maxdb
database = reviewdb
hostname = localhost
username = gerrit
In $site\_path/etc/secure.config:
[database]
password = <secret password>
Visit SAP MaxDBs [documentation](http://maxdb.sap.com/documentation/)
for further information regarding using SAP MaxDB.
### DB2
IBM DB2 is a supported database for running Gerrit Code Review. However
it is recommended only for environments where you intend to run Gerrit
on an existing DB2 installation to reduce administrative overhead.
Create a system wide user for the Gerrit application, and grant the user
full rights on the newly created database:
```
db2 => create database gerrit
db2 => connect to gerrit
db2 => grant connect,accessctrl,dataaccess,dbadm,secadm on database to gerrit;
```
JDBC driver db2jcc4.jar and db2jcc\_license\_cu.jar must be obtained
from your DB2 distribution. Gerrit initialization process tries to copy
it from a known location:
/opt/ibm/db2/V10.5/java/db2jcc4.jar
/opt/ibm/db2/V10.5/java/db2jcc_license_cu.jar
If these files cannot be located at this place, then an alternative
location can be provided during init step execution.
Sample database section in $site\_path/etc/gerrit.config:
[database]
type = db2
database = gerrit
hostname = localhost
username = gerrit
port = 50001
Sample database section in $site\_path/etc/secure.config:
[database]
password = secret_password
### SAP HANA
SAP HANA is a supported database for running Gerrit Code Review. However
it is recommended only for environments where you intend to run Gerrit
on an existing HANA installation to reduce administrative overhead.
In the HANA studio or the SAP HANA Web-based Development Workbench
create a user *GERRIT2* with the role *RESTRICTED\_USER\_JDBC\_ACCESS*
and a password \<secret password\>. This will also create an associated
schema on the database. As this user would be required to change the
password upon first login you might want to to disable the password
lifetime check by executing *ALTER USER GERRIT2 DISABLE PASSWORD
LIFETIME*.
To run Gerrit on HANA, you need to obtain the HANA JDBC driver. It can
be found as described
[here](http://help.sap.com/saphelp_hanaplatform/helpdata/en/ff/15928cf5594d78b841fbbe649f04b4/frameset.htm).
It needs to be stored in the *lib* folder of the review site.
In the following sample database section it is assumed that HANA is
running on the host *hana.host* and listening on port *4242* where a
schema/user GERRIT2 was created:
In $site\_path/etc/gerrit.config:
[database]
type = hana
hostname = hana.host
port = 4242
username = GERRIT2
In order to configure a specific database in a multi-database
environment (MDC) the database name has to be specified additionally:
In $site\_path/etc/gerrit.config:
[database]
type = hana
hostname = hana.host
database = tdb1
port = 4242
username = GERRIT2
In $site\_path/etc/secure.config:
[database]
password = <secret password>
Visit SAP HANAs [documentation](http://help.sap.com/hana_appliance/)
for further information regarding using SAP HANA.