Use the system property 'gerrit.install_plugins' to control which of the packaged plugins will be installed during auto site init in a servlet container. When 'gerrit.install_plugins' property is not defined then all packaged plugins will be installed. If it is present then it is parsed as a comma separated list of plugin names to install. Defining an empty string as the property value means that no plugin will be installed. Change-Id: I52881c9677bc9cc1e51c46c2c2ce4558c79b9a3e
		
			
				
	
	
		
			100 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			100 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
= 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. By default, all packaged
 | 
						|
plugins will be installed when Gerrit is deployed in a servlet container
 | 
						|
and the location of the Gerrit distribution can be determined at
 | 
						|
runtime. It is also possible to install only a subset of packaged
 | 
						|
plugins or not install any plugin.
 | 
						|
 | 
						|
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.
 | 
						|
 | 
						|
[WARNING]
 | 
						|
Defining the `jdbc/ReviewDb` JNDI property for an H2 database under the
 | 
						|
path defined by either `gerrit.site_path` or `gerrit.init_path` will
 | 
						|
cause an incomplete auto initialization and Gerrit will fail to start.
 | 
						|
Opening a connection to such database will create a subfolder under the
 | 
						|
site path folder (in order to create the H2 database) and Gerrit will
 | 
						|
not any more consider that site path to be new and, because of that,
 | 
						|
skip some required initialization steps (for example, Lucene index
 | 
						|
creation). In order to auto initialize Gerrit with an embedded H2
 | 
						|
database use the `gerrit.site_path` to define the location of the review
 | 
						|
site and don't define a JNDI resource with a URL under that path.
 | 
						|
 | 
						|
If the 'gerrit.install_plugins' property is not defined then all packaged
 | 
						|
plugins will be installed. If it is defined then it is parsed as a
 | 
						|
comma separated list of plugin names to install. If the value is an
 | 
						|
empty string then no plugin will be installed.
 | 
						|
 | 
						|
=== 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
 | 
						|
---------
 |