This documentation relates to an earlier version of Crucible.
View

Unknown macro: {spacejump}

or visit the current documentation home.

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.

On this page:

Supported Databases

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.

  • No labels

7 Comments

  1. Anonymous

    You should include the expected number of tables so that people can understand the progress.

    1. Erik van Zijst

      Thanks for the suggestion.
      I have raised CRUC-2125.

  2. Anonymous

    I'm confused as to why one needs to set default-character-set=utf8

    in my.ini. According to mysql documentation, this is only used if not specified in the
    database create, which it is in the crucible database creation example.
    {{}}

    1. Erik van Zijst

      Both are correct ways to ensure the proper character set of the database, but since Crucible expects the dba to create the database, we can't control the character set ourselves. Setting the default to utf-8 simply minimizes the chance of incorrectly configured databases.

      Cheers,

      Erik

  3. Dale Miller

    I upgraded Crucible+Fisheye from 2.1.4 to 2.2.0 today.  Below the "(Version:2.2.0 Build:build-465 2010-02-17)" information line at the bottom of the window there is a new line that contains "Your database is using case-insensitive comparisons for character fields."

    On September 4, 2009, (with Crucible 2.0.3) I migrated our Crucible database to MySQL using the instructions above.

    This is what our mysql status looks like today:

    mysql> status;
    mysql  Ver 14.12 Distrib 5.0.77, for unknown-linux-gnu (x86_64) using readline 5.1
    
    Connection id:          26349
    Current database:       crucible
    Current user:           svn@localhost
    SSL:                    Not in use
    Current pager:          less
    Using outfile:          ''
    Using delimiter:        ;
    Server version:         5.0.77-community MySQL Community Edition (GPL)
    Protocol version:       10
    Connection:             Localhost via UNIX socket
    Server characterset:    utf8
    Db     characterset:    utf8
    Client characterset:    latin1
    Conn.  characterset:    latin1
    UNIX socket:            /var/lib/mysql/mysql.sock
    Uptime:                 87 days 2 hours 11 min 25 sec
    
    

    Why would I be seeing "Your database is using case-insensitive comparisons for character fields."?

    1. Daniel Noll

      I'm trying to figure this out too.  Our client and server connection are both set to utf8, and our database columns are all using utf8_bin collation, but we still get the warning.

      I am inclined to ignore it but I wish there were a way to at least hide it, because it has been bugging me ever since we installed Crucible. :(

  4. Frank Koehl

    Clarification question:

    The documentation makes a deliberate effort to identify MySQL as "MySQL Enterprise Server." Am I correct in assuming that Fisheye/Crucible cannot use the free Community Edition?