LoginSignup
1
6

More than 5 years have passed since last update.

GitBucketをバックアップする - Windows環境

Last updated at Posted at 2019-05-19

作業内容

  • 環境変数の設定
  • データベースファイル保存フォルダの修正

準備(要:インストール)

参考

環境変数の設定

バックアップ用バッチファイルの更新が必要

公式バックアップスクリプト先頭付近にSET PATH=C:\cygwin64\bin;%PATH%を追加します。
※Git for Windows, cygwinは各自インストール下さい。

backup.bat
@echo off

REM Go to script directory
CD /D %~dp0

REM 下記を追加
SET PATH=C:\cygwin64\bin;%PATH%

bash backup.sh d:\gitbucket\home e:\backup\gitbucket http://localhost:8080/database/backup

なぜ更新が必要なのか?

WindowsのfindコマンドとLinuxのfindコマンドが別モノであり、デフォルトではWindowsのfindコマンドが使用されてしまいます。
backup.shはLinuxのfindコマンドを想定しているため、うまく動作しません。

backup.sh(抜粋)
repositories=$(find $gitbucketRepositoriesFolder -name *.git -print)

データベースバックアップファイル保存フォルダの修正

保存フォルダが [GitBucket実行フォルダ]/home/backup に変更となり、
さらに、バックアップファイル名がgitbucket-database-backup.zip からgitbucket-db-YYYY-MM-DD_HH-mm.zipという形に変化しています。
例:2019/01/14 12:59に保存するとgitbucket-db-2019-01-14_12-59.zipになります。

上記に対応させます。(backup.shから当該箇所を抜粋しています)

backup.sh(抜粋)
#
# Export the database
# 
if [ "$GITBUCKET_DB_BACKUP_URL" != "" ]
then
    echo "Database backup"
    curl $GITBUCKET_DB_BACKUP_URL > /dev/null
    cp -f $GITBUCKET_DATA/backup/gitbucket-db-*.zip $BACKUP_FOLDER > /dev/null
else
    echo "No database URL provided, skipping database backup"
fi

参照

復元方法

(1) DB(アカウント情報など)の復元

@IZAKAYA様の記事をご参照ください。
https://qiita.com/IZAKAYA/items/534534b732c1b8e190db
※4.30.1から4.31.2へSQLをインポートしてみると、PUBLIC.ACCOUNTのPASSWORD VARCHAR(40)が(200)になっていてデフォルト管理者でもログイン不可になりました。
※※SQL定義のPASSWORD VARCHAR(200)に変更すると、ログイン可能でした。
他にも結構SQLに差分が見受けられたので、復元ではなくGitBucket自体をバージョンアップする場合は事前に動作確認を行う等、慎重な検証が必要だと思います。

(2) リポジトリの中身の復元

repositoriesフォルダをバックアップからオリジナルへコピーする。

  • オリジナル:d:\gitbucket\home
  • バックアップ:e:\backup\gitbucket
1
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
6