プロジェクト

全般

プロフィール

アップグレード時にappの更新に失敗する対応

アップグレード前に次のバージョンへの互換性なしの警告が出ていることがあるので、出来ればその際に無効化しておきたい。
もし上記やその他を含む場合でアップデート時の「./occ upgrade」でappの更新で以下のようにエラーが出る場合の対策。

# sudo -u apache php ./occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Setting log level to debug
Updating database schema
Updated database
Updating <user_ldap> ...
Exception: Database error when running migration latest for app user_ldap
Update failed

例えば上記では「user_ldap」でエラーが出ているので、以下のように一度無効化する。
この際、configから当該appの設定が自動的に消える場合があるので事前にバックアップしておく。

# cd <nextcloudインストール先>
# cp -p config/config.php config/config.php.bak
# sudo -u apache php ./occ app:disable user_ldap

upgradeに失敗していた場合はupgradeしていないとコマンドに制限がある旨が出るが、今回はそのまま実行できる。
結果として無効化されたことを確認する。

Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
user_ldap 1.12.2 disabled

再度アップグレードを実行する。

# sudo -u apache php ./occ upgrade
Nextcloud or one of the apps require upgrade - only a limited number of commands are available
You may use your browser or the occ upgrade command to do the upgrade
Setting log level to debug
Updating database schema
Updated database
Updating <dav> ...

エラーとなったappがスキップされてアップデートが実行できること。

完了後、もしappが最新版に対応して別途配布されているようであればappを再インストールし、無効化時に
configから消えている項目をバックアップから戻す。