内容提要
本文介绍如何将自托管Forgejo实例的议题和拉取请求起始编号设为10000,以避免与GitHub迁移前的编号冲突。通过直接修改数据库,使用SQL语句`update issue_index set max_index=10000;`可全局设置,或按仓库ID单独调整。作者提醒编号需高于现有值,并已验证适用于Postgres,其他数据库未测试。
延伸解读
适用场景与前提
此技巧适用于从GitHub等平台迁移至自托管Forgejo,且希望保留旧平台议题编号的场景。通过设置起始编号,可避免新旧编号混淆。但需注意,操作前应确保设置的编号高于现有最大编号,否则可能导致重复编号问题。
操作风险提示
直接修改数据库存在风险,操作前建议备份数据库。文中仅验证了Postgres数据库,MySQL和SQLite未测试,可能因版本或配置差异导致语句不兼容。此外,该技巧基于Forgejo 15版本,其他版本可能不适用。
全局与单仓库设置差异
全局设置只需一条SQL语句即可对所有仓库生效,而单仓库设置需先查询仓库ID,再通过group_id条件更新。两种方式均直接操作issue_index表,但单仓库设置更精细,适合仅调整特定仓库的场景。
Q&A
如何将Forgejo的议题和拉取请求起始编号设置为10000?
可以通过直接修改数据库来实现。执行SQL语句:`update issue_index set max_index=10000;`,这样所有仓库的下一个议题或拉取请求编号将从10001开始。
Forgejo中如何为单个仓库设置起始议题编号?
首先查询仓库ID:`select id, name from repository;`,然后使用`update issue_index set max_index=10000 where group_id=123;`(将123替换为实际ID)来设置该仓库的起始编号。
为什么需要将Forgejo的议题编号设置为从10000开始?
在从GitHub迁移到自托管Forgejo时,如果继续使用Forgejo跟踪新议题,编号会从1开始,与GitHub上已有的低编号冲突。设置起始编号为10000可以避免重复,便于区分GitHub和Forgejo上的议题。
设置Forgejo起始编号时需要注意什么?
设置的编号必须高于仓库中已有的最大议题或拉取请求编号,否则可能导致编号重复。此外,该操作直接修改数据库,需谨慎执行。
Forgejo的起始编号设置适用于哪些数据库?
作者已验证该SQL语句在Postgres数据库上有效,并推测MySQL和SQLite也可能适用,但未经过测试。
Forgejo版本对设置起始编号有什么影响?
作者使用的是Forgejo版本15,并提醒该技巧可能不适用于其他版本,因此版本差异可能影响操作的有效性。