我已经恢复了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
。