2024-02-23

Nextcloudアップグレードでエラー

Nextcloud 28にアップグレードしたら(Dockerコンテナをpullしたら)、メンテナンスモードになって使えなくなってしまった。

Maintenance modeをoffにしようとすると失敗し、コマンドラインでアップグレードしようとするとこんなエラー。

$ docker-compose exec -u www-data app 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
Exception: Database error when running migration 28000Date20230906104802 for app core
Index name "card_name_index" for table "cards_properties" collides with the constraint on table "oc_cards_properties".
Update failed
Maintenance mode is kept active
Resetting log level

どうもoc_なんちゃらってテーブルが悪さしているようなので、全部dropしたった。初めはエラーが出るテーブルを1つ1つ消してたんだけど、ずーっとエラーが繰り返されて面倒になったのでこんな感じでoc_で始まるテーブルを全削除。

# mariadb -u root --password=xxxx nextcloud -e 'show tables;' -s|grep oc_|xargs -I "@@" mariadb -u root --password=xxxx nextcloud -e "drop table @@"

これでもう1回occ upgradeしたら、なんか色々作り直してる的なメッセージが出て、無事起動。
よかったよかった。