Documentation for JIRA 5.2. Documentation for other versions of JIRA is available too. 
![]()
These instructions will help you connect JIRA to a PostgreSQL 8.2+ database.
Please Note:
If you are Migrating JIRA to Another Server, create an export of your data as an XML backup. You will then be able to transfer data from your old database to your new database, as described in Switching databases.
On this page:
jiradbuser). Create a database for JIRA to store issues in (e.g. jiradb) with Unicode collation.
CREATE DATABASE jiradb WITH ENCODING 'UNICODE';
Or from the command-line:
$ createdb -E UNICODE jiradb
Skip this step if you installed a 'Recommended' distribution of JIRA, which (unlike JIRA WAR) includes the PostgreSQL JDBC driver.
lib/ directory of your application server.There are two ways to configure your JIRA server to connect to your PostgreSQL database:
Please Note:
The JIRA Configuration Tool is not available with JIRA WAR distributions.
config.bat in the bin sub-directory of the JIRA Installation Directory.config.sh in the bin sub-directory of the JIRA Installation Directory.JAVA_HOME environment variable to run the JIRA Configuration Tool. See Installing Java for details.To connect JIRA to PostgreSQL using the JIRA Configuration Tool:
dbconfig.xml file in your JIRA Home Directory.Congratulations — you have finished! Proceed to 'Next Steps' below.
Edit the dbconfig.xml file at the root of your JIRA Home Directory.
If this file does not exist, create the file, copy and paste the example XML code below into this file and edit the pasted XML as required.
Please Note:
Ensure that the <database-type/> element's content specifies your type of database, as shown below. If you forget to do this and you start JIRA, your database tables may be created incorrectly. Refer to our Incorrect database type specified documentation if this happens to you.
PostgreSQL 7.2 and later requires a schema to be specified in the <schema-name/> element. If your PostgreSQL database uses the default 'public' schema, this should be specified in the <schema-name/> element as shown below. Please ensure your database's schema name is lower-case as JIRA cannot work with PostgreSQL databases whose schema names contain upper-case characters.
When editing your
dbconfig.xml file, escape any '&' characters by adding 'amp;' to the end of each one.
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
<name>defaultDS</name>
<delegator-name>default</delegator-name>
<database-type>postgres72</database-type>
<schema-name>public</schema-name>
<jdbc-datasource>
<url>jdbc:postgresql://dbserver:5432/jiradb</url>
<driver-class>org.postgresql.Driver</driver-class>
<username>jiradbuser</username>
<password>password</password>
<pool-min-size>20</pool-min-size>
<pool-max-size>20</pool-max-size>
<pool-max-wait>30000</pool-max-wait>
<pool-max-idle>20</pool-max-idle>
<pool-remove-abandoned>true</pool-remove-abandoned>
<pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
</jdbc-datasource>
</jira-database-config>
For more information about the child elements of
<jdbc-datasource/> beginning with pool in the dbconfig.xml file above, see Tuning Database Connections.
Save your edited dbconfig.xml file (at the root of your JIRA Home Directory).
JIRA must be restarted for your new settings to take effect.
You should now have JIRA configured to connect to your PostgreSQL database.
Please see JIRA and PostgreSQL.
3 Comments
Whit Blauvelt
Mar 17, 2013The JIRA Configuration Tool does not work in a standard installation because the included Java does not have the appropriate variables set in the environment. So this page needs advice on setting those - and preferably not links to yet some other page with that information. The number of referrals between one page and another here to get references for basic sequential steps in an installation/upgrade makes this documentation nearly unreadable. For what's to be done in sequence, a single documentation page should present that full sequence. If sections of that sequence are used in different tasks, modularize those sections and include them on single pages pertinent to each task.
Also, this page could use complete instructions including all configuration steps within PostgreSQL. Assume it's a fresh system being used for the installation. Assume the user doesn't want to go off and cross reference the PostgreSQL docs with the steps sketchily described here.
Anonymous
Apr 18, 2013Not having per-platform and per-installation method docs in separate pages is disastrous and leads to doc-spaghetti. Seconded.
The Configuration Tool is disappointing in that it doesn't create the all important (and by default missing) config files it seeks to output it's tunables to! Why is it left to starting Catalina to report if all the home directories are set appropriately? Perhaps Configuration Tool is intended for use in an existing environment but for greenfield it's not helpful.
The Configuration Tool could be useful but desperately needs to be redesigned to gain it's own understanding from the user inputs to where the Net (in accounting speak) JAVA_HOME, JIRA_HOME and JIRA installation directory will be (is!). The rest can fall into place after that. It needs to present the important config files names and locations before bothering to offer anything else because be it a new install or a reconfig knowing where the config is read from or written to is not an unreasonable ask.
Nabil Sayegh
Jun 03, 2013Where can I find example configurations for PostgreSQL tweaked for optimal performance? i.e. settings for these parameters: http://www.postgresql.org/docs/8.4/static/runtime-config-resource.html