|  | Gerrit Code Review - Automatic Site Initialization on Startup | 
|  | ============================================================= | 
|  |  | 
|  | Description | 
|  | ----------- | 
|  |  | 
|  | Gerrit supports automatic site initialization on server startup | 
|  | when Gerrit runs in a servlet container. Both creation of a new site | 
|  | and upgrade of an existing site are supported. Installation of | 
|  | plugins during the site creation/initialization is not yet supported. | 
|  |  | 
|  | This feature may be useful for such setups where Gerrit administrators | 
|  | don't have direct access to the database and the file system of the | 
|  | server where Gerrit should be deployed and, therefore, cannot perform | 
|  | the init from their local machine prior to deploying Gerrit on such a | 
|  | server. It may also make deployment and testing in a local servlet | 
|  | container faster to setup as the init step could be skipped. | 
|  |  | 
|  | Gerrit Configuration | 
|  | -------------------- | 
|  |  | 
|  | The site initialization will be performed only if the `gerrit.init` | 
|  | system property exists (the value of the property is not used, only the | 
|  | existence of the property matters). | 
|  |  | 
|  | If the `gerrit.site_path` system property is defined then the init is | 
|  | run for that site. The database connectivity, in that case, is defined | 
|  | in the `etc/gerrit.config`. | 
|  |  | 
|  | If `gerrit.site_path` is not defined then Gerrit will try to find an | 
|  | existing site by looking into the `system_config` table in the database | 
|  | defined via the `jdbc/ReviewDb` JNDI property. If the `system_config` | 
|  | table exists then the `site_path` from that table is used for the | 
|  | initialization. The database connectivity is defined by the | 
|  | `jdbc/ReviewDb` JNDI property. | 
|  |  | 
|  | Finally, if neither the `gerrit.site_path` property nor the | 
|  | `system_config` table exists, the `gerrit.init_path` system property, | 
|  | if defined, will be used to determine the site path. The database | 
|  | connectivity, also for this case, is defined by the `jdbc/ReviewDb` | 
|  | JNDI property. | 
|  |  | 
|  | Example 1 | 
|  | ~~~~~~~~~ | 
|  |  | 
|  | Prepare Tomcat so that a site is initialized at a given path using | 
|  | the H2 database (if the site doesn't exist yet) or using whatever | 
|  | database is defined in `etc/gerrit.config` of that site: | 
|  |  | 
|  | ---- | 
|  | $ export CATALINA_OPTS='-Dgerrit.init -Dgerrit.site_path=/path/to/site' | 
|  | $ catalina.sh start | 
|  | ---- | 
|  |  | 
|  | Example 2 | 
|  | ~~~~~~~~~ | 
|  |  | 
|  | Prepare Tomcat so that an existing site with the path defined in the | 
|  | `system_config` table is initialized (upgraded) on Gerrit startup. The | 
|  | assumption is that the `jdbc/ReviewDb` JNDI property is defined in | 
|  | Tomcat: | 
|  |  | 
|  | ---- | 
|  | $ export CATALINA_OPTS='-Dgerrit.init' | 
|  | $ catalina.sh start | 
|  | ---- | 
|  |  | 
|  | Example 3 | 
|  | ~~~~~~~~~ | 
|  |  | 
|  | Assuming the database schema doesn't exist in the database defined | 
|  | via the `jdbc/ReviewDb` JNDI property, initialize a new site using that | 
|  | database and a given path: | 
|  |  | 
|  | ---- | 
|  | $ export CATALINA_OPTS='-Dgerrit.init -Dgerrit.init_path=/path/to/site' | 
|  | $ catalina.sh start | 
|  | ---- | 
|  |  | 
|  | GERRIT | 
|  | ------ | 
|  | Part of link:index.html[Gerrit Code Review] | 
|  |  | 
|  | SEARCHBOX | 
|  | --------- |