news 2026/10/5 2:23:51

RimSort 外部数据库体系全解析:配置、获取与 Git 协作管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
RimSort 外部数据库体系全解析:配置、获取与 Git 协作管理
  • 桌面应用
  • 游戏开发
  • CLI

【免费下载链接】RimSort

RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-managed alternative to RimPy Mod Manager.

项目地址:https://gitcode.com/gh_mirrors/ri/RimSort
点击查看免费下载

RimSort 通过一组完全可选的外部数据库来增强排序、依赖项解析、版本警告过滤与替代推荐能力。本指南以官方用户手册《数据库》章节为主体,结合仓库源码深入讲解五种外部数据库的用途、默认配置、设置面板操作方式,以及如何借助 Git 集成实现数据库的下载、更新与社区协作上传,帮助你最大化发挥 RimSort 的数据库价值。

数据库在 RimSort 中的角色与定位

RimSort 使用外部数据库来增强排序和依赖项处理等功能。这些数据库不包含在发行版中,而是由社区或第三方维护的独立数据源,RimSort 提供了便捷的安装和更新工具。它们完全可选——基础功能无需数据库支持即可运行,但额外的数据能显著提升用户体验,例如更准确的加载顺序、依赖关系提示与版本兼容性判断。

所有外部数据库的配置入口统一位于文件 > 设置 > 数据库(File > Settings > Databases)。从源码结构看,该设置页由 settings_dialog.py 中的_do_databases_tab构建,包含五个数据库分组(社区规则、Steam 创意工坊、无版本警告、使用此替代、RimWorld 版本),每一组都遵循完全相同的"数据源选择"交互模式(详见下文)。

统一的数据源配置模型:四种来源方式

每组数据库在设置面板中都提供四个单选来源与配套控件,这一模式在 databases_tab_controller.py 的DatabaseSourceGroup类中被抽象为统一实现:

来源(_SOURCE_VALUES)含义激活的控件
None不使用该数据库无(所有子控件禁用)
Configured git repository通过 Git 从配置的仓库克隆仓库 URL 输入框 + 下载/上传按钮
Configured URL通过 HTTP 下载归档包URL 输入框 + 下载按钮
Configured file path使用本地已存在的文件本地文件路径 + 选择按钮

界面交互逻辑(如切换单选按钮后仅启用对应控件组)由DatabaseSourceGroup.connect_signals/_apply_enabled_state实现;其对应的五个分组实例在DatabasesTabController.__init__中注册,分别绑定到Settings模型上的不同属性。

五大外部数据库逐一详解

社区规则数据库(Community Rules Database)

社区规则数据库是由社区整理的 Mod 加载顺序规则合集。最佳实践是 Mod 作者在about.xml文件中添加适当的加载规则,但作者可能无法及时响应社区反馈。为此,RimSort 通过公开的社区驱动数据库收集带有注释的额外规则。该数据库同时兼容 RimSort 特有的加载规则,例如强制排序至列表底部(Force load at bottom of list)。

在源码中,该数据库对应文件communityRules.json,默认存放在应用存储目录下(见 settings.py)。其默认数据源为Configured URL,指向 RimSort 社区维护的 Community-Rules-Database 仓库归档地址。

应用场景:在 rule_editor_panel.py 规则编辑器界面中,会分别展示本地about.xml的loadAfter/loadBefore/incompatibilitiesWith规则与社区规则的对应列表,方便对比与编辑。

用户规则数据库(User Rules Database)

用户规则数据库(userRules.json)是本地、用户特定的数据库,用于存储用户自定义的加载顺序规则。该文件会在数据库文件夹中自动创建(如不存在),允许用户定义自己的 Mod 加载顺序规则并跨会话持久保存。这些规则优先于社区规则,并可通过 RimSort 的规则编辑器界面进行编辑。

userRules.json的实际格式可从测试数据 tests/data/dbs/userRules.json 中看到,其结构包含timestamp与按 PackageId 索引的rules对象,每条规则支持三类字段:

{ "timestamp": 1715795801, "rules": { "test.test2": { "loadAfter": { "a.a": { "comment": "test21 load before", "name": "BB" } }, "loadBottom": { "comment": "It is not known.", "value": true } } } }

其中loadBefore/loadAfter以目标 PackageId 为键,值为带comment(注释)与name(显示名称)的对象;loadBottom则是前述 RimSort 特有规则"强制排序至列表底部"的底层存储形式(value: true表示启用)。测试配置中,用户规则文件被定位在dbs/userRules.json(见 tests/conftest.py)。

使用此替代数据库(Use This Instead Database)

"使用此替代"数据库是可选的外部数据库,当检测到过时或不兼容的 Mod 时,提供替代 Mod 的建议,帮助用户识别更新版本或更好的替代品。该数据库的源可在设置中配置,通常来自维护社区策划的 Mod 替换与更新列表的 "Use This Instead" 仓库。

从源码看(settings.py),该数据库默认以Configured URL为来源,下载到databases/UseThisInstead/replacements.json.gz(gzip 压缩的 JSON,对应设置面板中该分组专属的文件过滤器JSON Files (*.json *.json.gz))。下载完成后,RimSort 会通过 use_this_instead_panel.py 的UseThisInsteadPanel以独立窗口展示"为创意工坊 Mod 找到替代品"的列表,按替代 Mod 分组,并提供订阅、取消订阅、删除等操作入口。

无版本警告数据库(No Version Warning Database)

无版本警告数据库(ModIdsToFix.xml)是外部数据库,包含不应触发版本不匹配警告的 Mod 包 ID 列表。这对于故意不在about.xml中写入版本信息的 Mod,或兼容多个游戏版本的 Mod 很有用。该数据库通过识别已知版本无关的 Mod,帮助减少误报警告。其源可在设置中配置,默认来自 "NoVersionWarning" 仓库(见 settings.py)。

Steam 创意工坊数据库(Steam Workshop DB)

Steam 创意工坊数据库(steamDB.json)主要用于提供额外的依赖项数据。这些信息通常需要通过抓取 Steam 创意工坊并下载 Mod 来解析获取;而通过静态数据库,用户无需实际下载 Mod 即可访问这些信息,从而大幅降低依赖解析的成本。

关于如何构建或更新 Steam 创意工坊数据库,请参阅 数据库构建器指南。在运行时,RimSort 会将该数据库的packageId映射到 Mod 名称等元数据(可参考 tests/controllers/test_metadata_controller.py 对steamdb_packageid_to_name映射的断言)。其默认来源同样是Configured URL,指向 RimSort 维护的 Steam-Workshop-Database 仓库(见 settings.py)。

RimWorld 版本数据库(RimWorld Versions Database)

RimWorld 版本数据库(rimworld_versions.json)记录了可用的 RimWorld 游戏版本及其 depot,来源于第三方维护的 rimworld-versions 仓库(见 settings.py)。RimSort 使用它实现下载菜单下的"下载 RimWorld 版本(Download RimWorld Version)"功能,让你可以从 Steam 下载指定的 RimWorld 版本。与其他数据库一样,其来源可在设置面板的数据库(Databases)中配置。

底层读取逻辑位于 version_data_service.py:VersionDataService从 JSON 中解析versions(按平台win64/win32/mac/linux分组,含manifest_id、版本号、状态与 DLC 映射)与depots(depot ID 查找)两部分数据,并提供get_available_versions(platform)与get_depot_id(item_name, platform)两个查询接口。注意:若数据库未配置或未下载,该服务会记录警告日志并返回空数据,此时"下载 RimWorld 版本"功能不可用。

数据库存储位置与默认配置速查

所有外部数据库的默认路径、仓库与归档地址均在 settings.py 中定义。下表汇总了五种数据库的关键默认值:

数据库本地文件名(默认路径)默认来源默认仓库
Steam 创意工坊数据库steamDB.json(应用存储目录)Configured URLRimSort/Steam-Workshop-Database
社区规则数据库communityRules.json(应用存储目录)Configured URLRimSort/Community-Rules-Database
无版本警告数据库ModIdsToFix.xml(应用存储目录)Configured URLemipa606/NoVersionWarning
使用此替代数据库databases/UseThisInstead/replacements.json.gzConfigured URLemipa606/UseThisInstead
RimWorld 版本数据库databases/rimworld-versions/rimworld_versions.jsonConfigured URLbukforks/rimworld-versions

实用提示:默认来源统一为Configured URL(即下载仓库main分支的 zip 归档);若网络受限,可将来源切换为Configured file path并选择本地已下载好的文件,或切换为Configured git repository以便后续用 Git 拉取更新。在数据库设置页最下方,还提供了辅助元数据数据库(Aux Metadata DB)删除时间限制的设置项(默认-1,即永不删除),该数据库保存 Mod 颜色、已切换的警告状态、用户笔记等信息,相关读写函数位于 aux_db_utils.py。

通过 RimSort 的 Git 集成管理数据库

前置条件

为你的系统安装 Git。Git 集成功能用于下载/上传 Steam 创意工坊数据库(steamDB.json)或社区规则数据库(communityRules.json),便于协作与共享。

配置步骤

  1. 创建远程仓库或使用现有仓库。GitHub 仓库可与 RimSort 实现额外集成功能(如提交 pull request、自动更新检查)。
  2. 在 RimSort 设置下的数据库(Databases)中配置仓库 URL(选择Configured git repository来源并填入仓库地址)。
  3. (可选)在 RimSort 的高级设置(Advanced)中配置 GitHub 账户。你需要准备 GitHub 用户名,并为 RimSort 创建具有Repo权限的个人访问令牌。

重要说明:步骤 3 的 GitHub 身份配置,仅在你希望通过 RimSort 直接向配置的 GitHub 仓库提交 pull request 时才必需。若仅需通过 Git 从公共仓库下载数据库或仅在本地修改,无需此步骤。你也可以不通过 RimSort 配置,直接手动在 GitHub 提交 pull request。

  1. 完成数据库修改后,可通过内置功能分享你的数据库改动(上传到远程仓库)。

克隆数据库到 RimSort

当来源选择为Configured git repository时,点击该分组下的Download…按钮,RimSort 会将远程仓库克隆到本地数据库目录。从 main_content_controller.py 的download_signals映射可以看到,五种数据库共享同一下载管线:系统会根据来源类型分发任务——Configured URL走 HTTP 下载归档,Configured git repository走 Git 克隆(_do_git_clone内部还会先检查网络连通性)。Git 操作本身由 git_utils.py 中的git_clone执行(支持指定checkout_branch与浅克隆depth);若本地已存在该仓库,会提示用户选择"克隆新副本"或"就地强制更新现有仓库"。

上传数据库(需要仓库写入权限)

在Configured git repository来源下点击Upload…按钮,可把本地数据库改动推送回远程仓库。上传前 RimSort 会弹出确认对话框(见 main_content_controller.py),并需要对应仓库的写入权限;若配置了 GitHub 令牌且目标仓库属于你的账户,RimSort 可直接创建 pull request 完成协作。底层 git 操作(git_pull、git_push等)同样封装在 git_utils.py 中。

仓库中随文档提供的两段演示视频(克隆与上传流程)内容已过时,可能不适用于最新版 RimSort,请以本文与当前界面为准。

配置后的效果与验证

  • 排序增强:社区规则与用户规则会作为loadBefore/loadAfter/loadBottom规则参与排序过程,规则编辑界面(rule_editor_panel.py)会合并展示about.xml本地规则与外部规则的来源。
  • 依赖解析:Steam 创意工坊数据库在无需下载 Mod 的情况下补充依赖信息,配合排序时缺失依赖检查使用。
  • 版本警告过滤:无版本警告数据库中的包 ID 不会再触发版本不匹配警告。
  • 替代推荐:检测到过时/不兼容 Mod 时弹出"使用此替代"面板。
  • 版本下载:RimWorld 版本数据库就绪后,"下载 RimWorld 版本"功能可用,可按平台列出可用版本(含 manifest ID、状态与 DLC 映射)。

如果数据库下载后未生效,请依次检查:设置面板中该数据库的来源类型与地址是否正确、下载是否成功完成、本地文件是否存在于上表所列路径。对于 Steam 创意工坊数据库的构建与更新细节,继续阅读 数据库构建器指南 即可。

  • 桌面应用
  • 游戏开发
  • CLI

【免费下载链接】RimSort

RimSort is an open source mod manager for the video game RimWorld. There is support for Linux, Mac, and Windows, built from the ground up to be a reliable, community-managed alternative to RimPy Mod Manager.

项目地址:https://gitcode.com/gh_mirrors/ri/RimSort
点击查看免费下载

相关推荐

上一篇:深入解析 ants goroutine 池:scan4all 高并发扫描引擎的并发基石
下一篇:Aspire 中 Azure Application Insights 托管集成:建模、预配与连接字符串注入实战

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/5 2:22:22

Word 文档批量处理工具怎么选,多款工具实际使用情况整理

公文整理、报告汇总、论文排版、多文档统一修改时,经常需要批量处理 Word 文件,完成格式统一、内容替换、文档拆分合并等工作。不同 Word 处理工具,在批量编辑能力、样式保留、兼容性、AI 辅助能力上存在明显区别。下文客观记录五款 Word 处理…

作者头像 李华
网站建设 2026/10/5 2:20:58

峰值的警察:L∞ 范数——盯住最坏情况的那把尺子

L∞ 范数就是“向量里绝对值最大的那个分量”,也叫最大范数、切比雪夫范数。它不关心总共有多少、也不关心平方和,只盯住最坏的那一个。几何上它的单位球是正方形或超立方体,边与坐标轴平行;它关注最坏情况、峰值、最大偏差&#…

作者头像 李华
网站建设 2026/10/5 2:20:19

Mac Mouse Fix 实战:3 组按键映射,让 $10 鼠标滑出触控板手感

Mac Mouse Fix 实战:3 组按键映射,让 $10 鼠标滑出触控板手感 【免费下载链接】mac-mouse-fix Mac Mouse Fix - Make Your $10 Mouse Better Than an Apple Trackpad! 项目地址: https://gitcode.com/GitHub_Trending/ma/mac-mouse-fix 你的鼠标滚…

作者头像 李华