IvorySQL 贡献者速通指南来了!

本文作者:严少安,PostgreSQL ACE, IvorySQL 贡献者,IvorySQL 专家顾问委员。持有 PGCM、PGCE、PGCA、HGCPHGCA 等认证。

公众号「少安事务所」,由 严少安 主笔,专注于数据 & AI 领域技术传播。

最近,IvorySQL 社区更新了贡献者指南。明显感觉到“贡献者”这三个字的边界放宽了。

以前很多人一听到参与数据库开源项目,第一反应是先劝退自己:

“我不会改数据库内核。”

“分不清 NUMA 和 牛马。”

“PostgreSQL 代码量太大,不知道从哪里下手。”

这几个问题,我在社区交流中听过不止一次。

你不一定要先读懂几十万行代码,才有资格成为开源贡献者。

在新版贡献者指南已经说得很清楚。IvorySQL 需要的不只是内核开发者,更欢迎测试人员、文档作者、翻译者、社区布道者和真实用户。

尤其是现阶段,IvorySQL v6 正在紧密筹备中,Oracle 兼容、PostgreSQL 上游同步、构建测试、文档和生态适配都有大量工作要做。再加上 AI Agent 的出现,一个普通用户参与数据库开源项目的门槛,确实比三年前低了很多。

01. 参与 IvorySQL,不等于改数据库内核

更新后的 IvorySQL 贡献者指南列出了两大类贡献方式。

  1. 代码类贡献。包括内核开发、功能迭代、Bug 修复、插件开发、生态工具适配、回归测试、代码评审等。
  2. 非代码类贡献。Issue 反馈、文档完善、技术翻译、社区问答、技术分享、案例征集、迁移实践、社区推广等。

举个例子,你在 Rocky Linux、openKylin 或 macOS 上安装 IvorySQL,发现文档里的命令无法执行。你把操作系统版本、安装方式、错误日志、复现步骤和预期结果整理成 Issue,这就是贡献。

你可以把 IvorySQL 文档的源码克隆到本地,修正跑不通的命令,增补缺失的内容,然后提交 PR。如果 PR 顺利合并,恭喜你,你将获得更多贡献值。

如果你是一位开源爱好者,有自己的开源项目,在你的项目中新增支持了 IvorySQL 数据库。恭喜你,成功解锁了“隐藏”贡献项目。

02. 第一次参与,建议从 Issue 开始

很多人第一次参与开源项目,就想直接解决一个复杂功能。我不太建议这么做。

更稳妥的方式,是先提交一个高质量 Issue。因为写 Issue 会强迫你回答几个最基本的问题:

  1. 问题发生在什么版本?
  2. 使用的是 PostgreSQL 模式还是 Oracle 模式?
  3. 最小复现 SQL 是什么?
  4. 实际结果是什么?
  5. 预期结果是什么?
  6. PostgreSQL 或 Oracle 的对应行为是什么?
  7. 这个问题能否稳定复现?

一个合格的问题报告,至少要包含下面这些信息:

IvorySQL 版本:
操作系统:
安装方式:
兼容模式:
复现步骤:
最小 SQL:
实际结果:
预期结果:
错误日志:
补充说明:

最小复现非常关键。不要把几千行存储过程直接扔进 Issue,然后写一句“执行失败,请帮忙看看”。维护者还要先理解你的业务,再判断是哪一行触发问题,沟通成本很高。

更好的方式是把问题压缩成 10 行甚至 3 行 SQL。

例如,你发现 Oracle 模式下某个日期函数行为异常,可以先删除业务表、触发器和无关变量,只保留能够触发差异的表达式。

Issue 写得越小,中间沟通成本越低,问题解决越快。

03. AI Agent 最适合帮你整理 Issue,而不是替你制造 Issue

AI Agent 在问题探索、反馈环节非常好用。

假设你在 IvorySQL 中执行一段 Oracle SQL 时遇到报错,可以把版本信息、SQL、错误日志和相关文档交给 AI Agent,让它完成四项工作:

  1. 删除无关 SQL,寻找最小复现路径
  2. 对比 Oracle 与 IvorySQL 的行为
  3. 检索仓库中是否已经存在相同 Issue
  4. 按社区模板整理问题描述

我最近在用 AtomCode,它是一个 AI 编程助手,Claude Code / Cursor Agent 的开源平替,还能免费领取 deepseek-v4-flash 权益。我用 AtomCode 连接了 GitHub 的 MCP,然后帮我统计 IvorySQL 近期的 Issue 和 PR 情况,具体参见前文:IvorySQL 5.4 发布之后,还在快速进化什么?

接下来,我给 AtomCode 下达了这样的任务:

我在 IvorySQL Oracle 兼容模式下执行以下 SQL 时遇到问题。

请不要直接修改代码,先完成以下工作:

1. 连接到 IvorySQL 和 Oracle 容器,判断是否可以稳定复现
2. 将 SQL 缩减为最小复现案例
3. 检索 IvorySQL 已有 Issue 和 PR,判断是否重复
4. 对比 Oracle 官方语义
5. 生成一份 Issue 草稿

草稿必须包含环境、复现步骤、实际结果、预期结果和参考依据。
无法确认的信息请标记待核实,不要猜测。

不过,AI 找到的问题,至少要由人重新执行一次。

你自己都没有“古法”复现过,就不建议提交。

尊重 IvorySQL 研发同学的时间,也是一种开源精神。

04. 从 Issue 到 PR,关键不是让 AI 写代码

IvorySQL 的标准协作流程很清楚:提出 Issue,参与讨论,Fork 仓库,本地开发,提交 PR,接受 Review,合并主分支,进入 Release,再由用户测试。

这是一个循环,不是一锤子买卖。

1.jpg

如果你准备提交代码,第一步不是让 AI Agent 立刻生成补丁,而是先理解问题影响了哪一层。

问题类型 可能涉及的区域
Oracle 语法不兼容 Parser、Grammar、Oracle 兼容模块
Oracle 函数行为不同 ivorysql_ora、类型转换、NLS 处理
Package 状态异常 PL/iSQL、会话状态、缓存管理
编译失败 Makefile、Meson、平台依赖
回归测试漏跑 测试注册、CI、TAP 测试
文档错误 文档仓库、安装说明、示例 SQL
扩展无法安装 扩展控制文件、方言切换、ABI 兼容

AI Agent 可以帮助你画出调用链,搜索相似实现,找到对应测试文件。

但真正重要的问题不是“AI 能不能写出代码”,而是下面三个:

  1. 你是否理解这段代码为什么这样改?
  2. 你能否解释它会影响哪些兼容路径?
  3. Review 提出质疑时,你能否继续维护?

IvorySQL 最新的 AI 编程助手规范已经明确写了两条不鼓励行为:

  • 不鼓励贡献者在代码或文档评审中,直接套用 AI 生成的回复
  • 不鼓励提交自己不理解、无法解释和维护的 AI 生成代码

我非常认同。

05. 写文章,也是贡献,而且是目前很缺的贡献

IvorySQL 新版贡献者指南,把技术分享、案例征集、迁移实践总结和社区推广列入正式贡献维度。

数据库项目经常出现一种情况,代码已经支持,用户却不知道怎么用。开发者写了回归测试,却没有人把它翻译成实际业务场景。

一篇有价值的 IvorySQL 文章,不应该只把发布说明换个顺序再说一遍。更值得写的是这些内容:

  1. 一次真实的 Oracle 迁移过程
  2. 某个 PL/SQL Package 如何迁移到 PL/iSQL
  3. Oracle 与 IvorySQL 日期函数的行为差异
  4. 某个扩展在 IvorySQL 上的安装与验证
  5. 一个 Issue 从复现到合并的全过程
  6. IvorySQL v6 某项新特性的测试记录

说到写文章,感兴趣的友友们可以关注一下 IvorySQL 布道者计划:

开源征程,邀你同行| IvorySQL 2026 布道者招募启动,快来报名!

在这里,我还有个提议:

建议提前放出 IvorySQL v6 beta 版本,让 IvorySQL 布道师能够提前“品味” v6 的新特性。独测试,不如众测试。

06. IvorySQL v6 阶段,贡献者可以关注什么

关于 IvorySQL v6 的具体发布内容,应以社区后续 Roadmap 和正式公告为准。

但从当前公开的 Issue 和 PR 看,项目正在密集推进几类工作:

方向 当前可观察的工作
Oracle 兼容 分区 SPLIT、MERGE,VSIZE,DBTIMEZONE,时间外键,DBMS_SCHEDULER
稳定性 内存释放、缓冲区越界、错误路径处理
安全 密码复杂度、字符串与缓冲区边界
文档交付 Docker 快速入门、兼容语法说明、生态组件验证

这些工作给不同背景的贡献者留下了入口。Oracle DBA 可以验证兼容语义;PostgreSQL 开发者可以关注上游差异;测试工程师可以补回归案例和边界输入;运维人员可以验证安装、升级、备份与高可用;技术作者可以补文档、写迁移案例;AI Agent 使用者则可以帮助做代码检索、差异分析、测试生成和材料整理。

贡献者,是一个定位,不止有一种角色。

当然,我们还要清醒的认识到,AI 不会自动带来高质量贡献,本质上还是辅助工具。如果一个人不理解数据库事务、内存管理和兼容语义,Agent 生成的补丁越快,潜在风险可能越大。

用 AI 的人会越来越多,但好问题和会负责的人,仍然稀缺。

07. 写在最后

前段时间,我在稀缺的“闲暇”,Vibe 了一个小工具,数据存储在 IvorySQL 数据库中。画面是下面这个样子:

2.png

3.png

如果,你有任何 Good Idea,欢迎尝试使用 IvorySQL 作为后端数据库。

开源出来,或者写成文章分享出来,那么,恭喜你,即将成为 IvorySQL 布道者。

开源无门槛,贡献无大小。

参考资料:


最后留一个问题:

如果让你为 IvorySQL v6 完成第一份贡献,你更愿意从 Issue、代码、测试、文档,还是迁移文章开始?欢迎评论区聊聊。

posted @ 2026-08-14 15:58  IvorySQL  阅读(4)  评论(0)    收藏  举报