2

我已经恢复了 Gitea 备份。一切似乎都很好,只是在 WebUI 中单击 URL 会打开一个仅包含主机名或错误 URL 的 URL(它缺少 URL 的存储库部分)。

如果我创建一个新的存储库,我可以在单击 URL 时照常访问它。如果我手动输入存储库的 URL(例如 gitea.my-domain.de/username/reponame.git),我可以访问它。

我的第一次尝试是在 app.ini 中设置 ROOT_URL,但这不起作用。有任何想法吗?

4

2 回答 2

3

这只是发生在我身上,看起来是因为在gitea数据库中,表中的owner_namerepository被转储为NULL. 有趣的是,该owner_id列保持正确的值。

我正在使用 mysql(mariadb) 并执行了以下操作:

USE gitea;
SELECT id, name, owner_id, owner_name FROM repository;

检查这个输出只是为了确保它看起来很正常。

UPDATE repository INNER JOIN `user` ON `user`.id = repository.owner_id SET owner_name = `user`.name;

这将根据用户表中的 user_id 查找和替换 user_name。

SELECT id, name, owner_id, owner_name FROM repository;

只是为了确保它有效。将第一个输出与第二个输出进行比较。

我在 github 的 gitea repo 上检查了问题,没有看到任何与这些症状相匹配的问题。我稍后会在那里打开一个问题并链接这篇文章。

于 2020-08-19T11:34:00.457 回答
1

我遇到了类似的问题,并在a7hybnj2的先前答案的帮助下设法解决了它。

我的实例使用 SQLite 数据库运行,更新命令需要如下所示:

UPDATE repository
SET owner_name = (SELECT name
          FROM `user`
          WHERE (repository.owner_id = `user`.id))
WHERE EXISTS (SELECT *
          FROM `user`
          WHERE (repository.owner_id = `user`.id));

INNER JOIN修改是必要的,因为 SQLite 语法不支持UPDATE.

于 2021-01-16T22:47:09.470 回答