在 upgrade nextcloud 的过程里,执行 occ upgrade 的时候发现错误提示:
1 | - ERROR: An exception occurred while executing a query: SQLSTATE[HY000]: General error: 1877 Table `nextcloud`.`oc_ex_apps` is corrupted. Please drop the table and recreate. |
搜索了 nextcloud 社区,虽然没有直接的解决方法,但是从这个对话里得到了 schema。虽然是 postgresql 的,但是让 chatgpt 转换成 mariadb 就行了。修复过程如下:
- 连接到 mariadb,root 身份直接
mariadb -uroot
- 然后在 mysql shell 中执行以下命令(这里数据库名字之类的用的默认名字):
1 | USE nextcloud; |
这样就修好了。不过这个 schema 是 30.0.x 的,为了避免刻舟求剑,可以定时用以下命令导出整个 nextcloud 数据库中所有 table 的 schema:
1 | mariadb-dump --no-data nextcloud > nextcloud_schema.sql |