urain39 / stuff

Noting here.
1 stars 0 forks source link

Gitea 将普通仓库转换为镜像仓库 #132

Open urain39 opened 11 months ago

urain39 commented 11 months ago

这里以 textual 仓库为例。

因为仓库转换需要操作数据库,所以我们需要在这之前对数据库进行备份:

cd /var/lib/gitea
cp -f gitea.db gitea.db.old

注意:修改数据库前你应该先将 Gitea 相关的进程关闭。

然后连接数据库进行修改,这里以 SQLite 为例:

sqlite3 gitea.db

连接后输入:

UPDATE repository SET is_mirror=1 WHERE lower_name == 'textual';

将 textual 仓库转换为镜像仓库。

接着输入:

INSERT INTO mirror (id, repo_id, interval, enable_prune, updated_unix, next_update_unix, lfs_enabled, lfs_endpoint, remote_address) SELECT NULL as id, (SELECT id FROM repository WHERE lower_name == 'textual'), interval, enable_prune, updated_unix, next_update_unix, lfs_enabled, lfs_endpoint, 'https://github.com/textualize/textual' as remote_address FROM mirror WHERE id == 1;

在镜像仓库设置中加入 textual 仓库的设置。

注意:如果你是第一次添加镜像仓库,那么这里可能会失败。你可以在这之前随便添加一个镜像仓库,以保证我们想要镜像的仓库能直接复制它的设置。

urain39 commented 10 months ago

注意,如果你的仓库是以git+ssh协议克隆的,那么拉取可能失效,需要手动git+http协议。

CsVeryLoveXieWenLi commented 5 months ago

好的,谢谢。