还原备份后 Gitea 中的存储库 URL 损坏



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

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

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

这刚刚发生在我身上,看起来是因为在gitea数据库中,repository表中的owner_name列被转储为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 存储库上的问题,但没有看到任何匹配这些症状的问题。我稍后会在那里打开一个问题并链接这篇文章。

我遇到了类似的问题,并设法在 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));

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

最新更新