Nextcloud、Webからアップグレードすることはできますが下位のメジャーバージョンにダウングレードすることはできません。
アップグレードの失敗ならびにアプリの相性などで元のバージョンに戻したい場合は以下のように切り戻しを行います。
(今回の筆者のパターンは前者です)
前提
アップグレード前のnextcloudのDBを取っていること
これがなければそもそも成り立ちません。この方法で日次のバックアップを取っていました。
取っていなかった場合は別のサイトをお探しください。
nextcloud_backup.sql
等のSQLを任意のディレクトリに格納してください。
環境
- Ubuntu 24.04
- Apache2.4
- php 8.3
- MySQL 8.0.39
- Nextcloud 29.0.8
特記事項
データ格納ディレクトリを別パーティションにしています。
さっくりとした手順
- 切り戻し前のプログラムを退避させます。
- 切り戻しを行いたいプログラムをダウンロードします。
- プログラムを解凍して再配置します。
- コンフィグやアプリデータなどを再配置します。
- DBをリストアします。
- 切り戻しを確認します。
Nextcloudの退避
- プログラム退避
sudo mv /home/www-data/nextcloud /path/to/backup/directory/nextcloud.$(date +%Y%m%d)
退避前、退避先はそれぞれ自分の環境に合わせます。
- 退避確認
ls -l /path/to/backup/directory/nextcloud.$(date +%Y%m%d)
退避先にディレクトリファイル一式があることを確認します。
切り戻し対象前のプログラムをダウンロード
- 作業用ディレクトリに移動
cd /hoge && pwd
任意のディレクトリを指定します。
- wgetによるダウンロード
wget https://download.nextcloud.com/server/releases/nextcloud-29.0.8.zip
切り戻しを行う(アップグレード前)のバージョンを指定します。
- 解凍
unzip nextcloud-29.0.8.zip
- 所有者変更
sudo chown -R www-data:www-data nextcloud
Nextcloud(Webサービス)実行ユーザーに合わせます。
- Nextcloud再配置
sudo mv nextcloud /home/www-data/
元々Nextcloudが配置されていたディレクトリに再配置します。
- 再配置確認
ls -l nextcloud /home/www-data/nextcloud
ディレクトリ・ファイル一式があることを確認します。
Nextcloud復旧
- 退避させた元のNextcloudからコンフィグをコピー
sudo cp -pi /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/config/config.php /home/www-data/nextcloud/config/
- 退避させた元のNextcloudからアプリ一式をコピー
sudo -u www-data cp -r /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/apps/* /home/www-data/nextcloud/apps/
- 退避させた元のNextcloudからデータ一式をコピー
sudo -u www-data cp -r /path/to/backup/directory/nextcloud.$(date +%Y%m%d)/data/* /home/www-data/nextcloud/data/
※データ格納ディレクトリを別のパーティションにしている場合は不要です。ディスクサイズによってはcp -r
の代わりにmv
を用いてください。
- DBからリストア
mysql -u nextcloud -p nextcloud < /path/to/directory/nextcloud_backup.sql
-u nextcloudのDBユーザ名
、-p nextloudDB名
です。バックアップのSQLファイルは自分の環境に合わせます。
- Webサービス再起動(Apacheの場合)
sudo systemctl restart apache2.service
- Webサービス再起動(nginxの場合)
sudo systemctl restart nginx.service
切り戻し確認
- Nextcloudに管理者権限でログインします。
- バージョンが切り戻し前に戻っていることを確認します。
- 主要な機能が使えることを確認します。
切り戻し後のデータ削除(必要に応じて)
- 退避させたプログラムの削除
sudo rm -rf /path/to/backup/directory/nextcloud.$(date +%Y%m%d)
- バックアップのSQLファイルの削除
rm /path/to/directory/nextcloud_backup.sql
コメントを残す