[Other doc versions]
[Doc downloads]
This page describes how to connect Stash to a PostgreSQL database.
The overall process for using a PostgreSQL database with Stash is:
It is assumed here that you already have PostgreSQL installed and running. For more information about PostgreSQL installation and operation, refer to the PostgreSQL documentation.
PostgreSQL has the idea of schemas. When you create a PostgreSQL database, a 'public' schema is created and set as the default for that database. It is possible to create a different schema (e.g. 'stash') and set that as the default schema. Stash will use whatever schema is set as the default for the logged-in user. Stash does not provide a way for a user to nominate the schema to use; it uses schema that is set as the PostgreSQL default.
See Supported platforms for the versions of PostgreSQL supported by Stash.
If you are migrating your Stash data from the HSQL internal database, back up the Stash home directory.
If you are migrating your Stash data from another external database, back up that database by following the instructions provided by the database vendor before proceeding with these instructions.
See Data recovery and backups.
Before you can use Stash with PostgreSQL, you must:
Here is an example of how to create a user called stashuser
with password jellyfish
, and a database called stash
, which is configured for use by stashuser
. Using a PostgreSQL client application like psql or pgAdmin, run the following commands, replacing the user name, password, and database name with your own values.
CREATE ROLE stashuser WITH LOGIN PASSWORD 'jellyfish' VALID UNTIL 'infinity'; CREATE DATABASE stash WITH ENCODING='UTF8' OWNER=stashuser CONNECTION LIMIT=-1;
Note that you must also add Stash to the PostgreSQL pg_hba.conf file, otherwise PostgreSQL will not allow the connection. See Password authentication failed with PostgreSQL 9 for details.
You can now connect Stash to the PostgreSQL database, either:
Hostname | The host name or IP address of the computer running the database server. |
Port | The TCP port with which Stash can connect to the database server. The default value is the default port that PostgreSQL runs against. You can change that if you know the port that your PostgreSQL instance is using. |
Database name | The name of the database that Stash should connect to. |
Database username | The username that Stash should use to access the database. |
Database password | The password that Stash should use to access the database. |
This section is only relevant to some distributions of Stash, for example if you are running Stash via the Atlassian Plugin SDK, or have built Stash from source.
If the PostgreSQL JDBC driver is not bundled with Stash, you will need to download and install the driver yourself.
<Stash home directory>
/lib
directory (for Stash 2.1 or later).