Migrating to an external database
This page contains information about migrating Crucible from its default embedded HSQL database to an external database. Advantages of using a database other than the embedded HSQL database include:
- Improved Protection Against Data Loss: The Crucible built-in database, running HSQLDB is somewhat susceptible to data loss during system crashes. External databases are generally more resistant to data loss during a system crash. HSQLDB is not supported in production environments and should only be used for evaluation purposes.
- Performance & Scalability: if you have many users on your Crucible instance, running the database on the same server as FishEye may slow it down. When using the embedded database, the database will always be hosted and run on the same server as Crucible.
- Data Stored in the Crucible Database: The Crucible database stores all information besides the cache for repository scans. This means all reviews, comments, review states, user data and user preferences information.
You can use a number of alternatives to the built-in HSQLDB database for storing FishEye and Crucible's relational data. The supported alternative databases are listed on the Supported platforms page. Please note, that only the database versions listed on that page are supported.
The pages linked below outline the steps required to switch to an external database:
Support for Other Databases
If you are using another database product that you would like to see supported, please create a JIRA issue for it under the Crucible project.
Crucible uses Read Committed transaction isolation. There is no requirement to configure this explicitly when setting up an external database - Crucible will configure the transaction isolation when connecting to the database.