Firefly-iiiのアップデート。(6.1.2→6.2.1)
LAMP環境で動く財務管理システム、firefly-iiiを6.1.2→6.2.1にアップグレードしたときの手順メモです。
環境
- Ubuntu 24.04
- Apache 2.4
- MySQL 8.0.39
- PHP 8.3.12
- Composer 2.7.9
- firefly-iii 6.1.2
さっくりとした手順
- DBのバックアップを取得します。
- 最新版のパッケージをダウンロードして展開します。
- 利用中のfirefly-iiiを待避させます。
- 待避させたfirefly-iiiからファイル/ディレクトリをコピーします。
- アップグレードを行います。
DBのバックアップ
- 作業ディレクトリに移動
cd /hoge && pwd
任意の作業ディレクトリに移動します。
- DBバックアップ
mysqldump --no-tablespaces --single-transaction -u username -h localhost -p database_name > DB_Backup.$(date +%Y%m%d).sql
usename
、database_name
、及びDB_Backup
は自分の環境に合わせます。
- バックアップ確認
head -100 DB_Backup.$(date +%Y%m%d).sql
バックアップができていること、平文でSQLが読めることを確認します。
パッケージ取得
- 作業ディレクトリに移動
cd /hoge && pwd
任意の作業ディレクトリに移動します。
- wget
wget https://github.com/firefly-iii/firefly-iii/releases/download/v6.1.21/FireflyIII-v6.1.21.zip
- ファイル所有者変更
sudo chown www-data:www-data FireflyIII-v6.1.21.zip
- ファイル確認
ls -l FireflyIII-v6.1.21.zip
ファイルがあること、所有者がWebアプリ実行ユーザ(www-data)であることを確認します。
アップデート前のfirefly-iiiを待避
- ディレクトリごと待避
sudo mv /home/www-data/firefly-iii /home/www-data/firefly-iii.$(date +%Y%m%d)
自分の環境に合わせます。firefly-iiiがインストールされているディレクトリをまるごと移動します。
- 待避確認
ls -ld /home/www-data/firefly-iii
→ ディレクトリが無いこと
ls -ld /home/www-data/firefly-iii.$(date +%Y%m%d)
→ ディレクトリがあること
アップデートパッケージの解凍と配置
- 解凍
sudo -u www-data unzip -o /hoge/FireflyIII-v6.1.21.zip -x "storage/*" -d /home/www-data/firefly-iii
/hoge
は先ほど取得したパッケージがある場所です。アップデート前と同じ位置、名前に解凍します。
- 解凍・配置確認
ls -l /home/www-data/firefly-iii
ファイル一式があり、www-dataが所有者になっていること
アップデート前のファイル・ディレクトリをコピー
- 待避させたディレクトリに移動
cd /home/www-data/firefly-iii.$(date +%Y%m%d) && pwd
自分の環境に合わせます。
-
.env
ファイルをコピー
sudo cp -pi .env /home/www-data/firefly-iii/.env
コピー先のディレクトリは自分の環境に合わせます。
-
.env
ファイルコピー確認
ls -l /home/www-data/firefly-iii/.env
ファイルがあることを確認します。
- storageディレクトリのコピー
sudo cp -pir storage /home/www-data/firefly-iii/
- storageディレクトリのコピー確認
ls -l /home/www-data/firefly-iii/storage
ファイルやディレクトリがあることを確認します。
アップグレード
- アップグレード後のディレクトリに移動
cd /home/www-data/firefly-iii && pwd
先ほど展開したディレクトリに移動します。
- DBマイグレーション
sudo -u www-data php artisan migrate --seed
Yesが見えるようにして実行します。
- 一時複合化
sudo -u www-data php artisan firefly-iii:decrypt-all
- アプリケーションキャッシュクリア
sudo -u www-data php artisan cache:clear
- コンパイルされたビューのキャッシュクリア
sudo -u www-data php artisan view:clear
- DBアップグレード
sudo -u www-data php artisan firefly-iii:upgrade-database
- Laravel assportのキー生成
sudo -u www-data php artisan firefly-iii:laravel-passport-keys
アップグレード反映・確認
- Webサービス再起動
sudo systemctl restart apache2.service
- Webサービス再起動確認
systemctl status apache2.service
- アップデート確認
- アップデートを行ったfirefly-iiiサイトにブラウザでアクセスします。
- ログインできることを確認します。
- バージョンが上がっていることを確認します。
- 登録操作などができることを確認します。
アップデート後の処理:mysqldumpの削除
- バックアップしたDBの削除
cd /hoge && pwd
mysqldumpを実行したディレクトリに移動します。
- dump削除
rm DB_Backup.$(date +%Y%m%d).sql
- バックアップ削除確認
head -100 DB_Backup.$(date +%Y%m%d).sql
ファイルが読めないことを確認します。
アップデート後の処理待避させたディレクトリの削除
- 削除前:待避ディレクトリ確認
ls -ld /home/www-data/firefly-iii.$(date +%Y%m%d)
ディレクトリがあることを確認します。(自分の環境に合わせます。)
- 待避させたディレクトリの削除
[ -d "/home/www-data/firefly-iii.$(date +%Y%m%d)" ] && sudo rm -rf "/home/www-data/firefly-iii.$(date +%Y%m%d)"
それぞれ、待避させたディレクトリであることを入念に確認してから行ってください。
- 削除前:待避ディレクトリ確認
ls -l /home/www-data/firefly-iii.$(date +%Y%m%d)
ディレクトリがないことを確認します。