Before you begin: If you are already using JIRA, 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.
1. Configure Sybase
Create a database user which JIRA will connect as (e.g. jirauser).
Create a database for JIRA to store issues in (e.g. jiradb).
Ensure that the user has permission to connect to the database, and create and populate tables.
Add the Sybase JDBC driver jar (jtds-1.2.jar) to the common/lib/ directory.
Note
An offical Sybase driver, called jConnect, is available. However it seems not to be able to store CLOBs
larger than 16kb (see JRA-6679), and so we recommend
jTDS instead
3. Configure your application server to connect to Sybase
Edit conf/server.xml (if you are using JIRA Standalone) and customise the username, password, driverClassName and url parameters for the
Datasource. (If you are using JIRA WAR/EAR, edit the appropriate file on your application server; e.g. for Tomcat, edit conf/Catalina/localhost/jira.xml.)
(Note: if you can't find this section at all, you've probably got the wrong file - search for mentions of
'jira' in the files under conf/.)
If you are using JIRA Standalone, edit conf/server.xml, and delete the minEvictableIdleTimeMillis and
timeBetweenEvictionRunsMillis attributes (which are only needed for HSQL, and degrade performance
otherwise).
4. Configure the JIRA Entity Engine
Edit atlassian-jira/WEB-INF/classes/entityengine.xml (if you are using JIRA Standalone) or edit-webapp/WEB-INF/classes/entityengine.xml (JIRA WAR/EAR), and change the
field-type-name attribute to sybase. (If you forget to do this and
start JIRA, it may create database tables incorrectly. See this
page if this happens to you.) Also delete the schema-name="PUBLIC" attribute:
<!-- DATASOURCE - You will need to update this tag for your installation.
-->
<datasource name="defaultDS" field-type-name="sybase"
schema-name="PUBLIC"
helper-class="org.ofbiz.core.entity.GenericHelperDAO"
check-on-start="true"
use-foreign-keys="false"
...
If you are using JIRA WAR/EAR, your application server may require other
changes to entityengine.xml (e.g. to customise the jndi-jdbc tag).
A user of JBoss and Sybase ASA 9.0.2 reported getting errors (e.g.
com.sybase.jdbc2.jdbc.SybSQLException: ASA Error -195: Column 'PASSWORD_HASH' in table 'userbase' cannot
be NULL) even after nulls were allowed (select * from systable where "option" like
'%null%'). This was eventually resolved by modifying the JBoss datasource definition to include:
<new-connection-sql>
sp_dboption jira, "allow nulls by default", true
</new-connection-sql>
Next steps
You should now have an application server configured to connect to a database, and JIRA configured to use the correct database type. If you are using JIRA Standalone, start it up and watch the logs for any errors. If you are using the JIRA WAR/EAR distribution, rebuild and redeploy the webapp in your application server.
User-contributed notes
Have experiences to share with Sybase and JIRA? We welcome your thoughts. Please see the user-contributed Sybase notes.