Newer
Older
gitbucket_jkp / doc / auto_update.md
@Naoki Takezoe Naoki Takezoe on 17 Oct 2015 1 KB Update url in docs

Automatic Schema Updating

GitBucket uses H2 database to manage project and account data. GitBucket updates database schema automatically in the first run after the upgrading.

To release a new version of GitBucket, add the version definition to the gitbucket.core.servlet.AutoUpdate at first.

object AutoUpdate {
  ...
  /**
   * The history of versions. A head of this sequence is the current BitBucket version.
   */
  val versions = Seq(
      Version(1, 0)
  )
  ...

Next, add a SQL file which updates database schema into /src/main/resources/update/ as MAJOR_MINOR.sql.

GitBucket stores the current version to GITBUCKET_HOME/version and checks it at start-up. If the stored version differs from the actual version, it executes differences of SQL files between the stored version and the actual version. And GITBUCKET_HOME/version is updated by the actual version.

We can also add any Scala code for upgrade GitBucket which modifies ď˝’esources other than database. Override Version.update like below:

val versions = Seq(
  new Version(1, 3){
    override def update(conn: Connection): Unit = {
      super.update(conn)
      // Add any code here!
    }
  },
  Version(1, 2),
  Version(1, 1),
  Version(1, 0)
)