作業内容
- 環境変数の設定
- データベースファイル保存フォルダの修正
準備(要:インストール)
- Git for Windows
- Cygwin (bash, find ...etc)
参考
環境変数の設定
バックアップ用バッチファイルの更新が必要
公式バックアップスクリプト先頭付近にSET PATH=C:\cygwin64\bin;%PATH%
を追加します。
※Git for Windows, cygwinは各自インストール下さい。
@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コマンドを想定しているため、うまく動作しません。
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から当該箇所を抜粋しています)
#
# 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