已合并
feat(gaussdb): add GaussDB/openGauss async SQLAlchemy dialect and handler #101
feat(gaussdb): add GaussDB/openGauss async SQLAlchemy dialect and handler #101
已合并
潘银创建于 4月17日
潘银
潘银
4月17日

/kind feature
Self-checklist:
(请自检,在[ ]内打上x,我们将检视你的完成情况,否则会导致pr无法合入)
[ ] 设计: PR对应的方案是否已经经过Maintainer评审, 方案检视意见是否均已答复并完成方案修改
[x] 测试: PR中的代码是否已有UT/ST测试用例进行充分的覆盖, 新增测试用例是否随本PR一并上库或已经上库
[x] 验证:PR描述信息中是否已包含对该PR对应的Feature、Refactor、Bugfix的预期目标达成情况的详细验证结果描述
[x] 接口:是否涉及对外接口变更,相应变更已得到接口评审组织的通过, API对应的注释信息已经刷新正确
[x] 文档:是否涉及官网文档修改,如果涉及请及时提交资料到Doc仓

PR说明

  1. 本PR为 Runtime 增加并完善 GaussDB / openGauss 适配能力。
  2. 在已有异步 SQLAlchemy 方言、GaussDBHandler、server/ir/lowcode
  3. 接入基础上,进一步将 async-gaussdb 从基础硬依赖调整为可选依赖,
  4. 使默认安装仅覆盖 sqlite / mysql 场景;当 DB_TYPE=gaussdb 或
  5. opengauss 时,再按需导入并校验驱动依赖。

同时,补充了启动脚本、示例配置和中英文文档,保证使用仓库自带
一键启动脚本时,可根据 .env 中的 DB_TYPE 自动安装
foundation[gaussdb] 可选依赖,避免手工安装遗漏。

主要改动

  1. 新增并接入 GaussDB / openGauss 异步 SQLAlchemy 方言
  2. 新增 GaussDBHandler,并接入 foundation / management / server 链路
  3. 扩展 DB_TYPE,支持 gaussdb / opengauss
  4. 将 async-gaussdb 从基础依赖调整为可选依赖 foundation[gaussdb]
  5. 清理顶层导入链,改为仅在 gaussdb / opengauss 分支下惰性导入
  6. 在驱动缺失时输出明确安装提示,提示安装 foundation[gaussdb]
  7. 或 async-gaussdb>=0.30.4
  8. 补充 ir_execution_service 对 GaussDB / openGauss 的配置校验、
  9. 默认端口和连接串生成
  10. 兼容 lowcode_agent 在 runtime 使用 gaussdb / opengauss 时的
  11. 下游启动链路
  12. 更新 run-server.sh 与 scripts/run-server.ps1,
  13. 根据 DB_TYPE 自动安装可选依赖
  14. 更新 README、快速开始、配置说明、.env.example 文档说明

验证结果

  1. Ruff 检查通过
  2. UT 通过
  3. foundation gaussdb support:10/10
  4. ir runtime env prepare gaussdb:3/3
  5. ST 通过
  6. lowcode gaussdb bridge:2/2

本次重点验证内容包括:

  • mysql / sqlite 场景在未安装 async-gaussdb 时可正常导入和启动
  • gaussdb / opengauss 场景可正常选择 GaussDBHandler
  • 缺少 async-gaussdb 时可返回清晰可操作的报错提示
  • ir_execution_service 可正确生成 gaussdb 异步连接串
  • lowcode runtime 到 studio 的 DB_TYPE 桥接无回归

兼容性说明

  1. 不涉及对外 API 路由变更
  2. sqlite / mysql 现有逻辑保持不变
  3. 本次为增量能力扩展
  4. 默认安装更轻量,GaussDB / openGauss 改为按需安装

依赖变更

  1. async-gaussdb>=0.30.4 为可选依赖
  2. 使用 GaussDB / openGauss 时需安装 foundation[gaussdb] 或直接安装 async-gaussdb>=0.30.4
likedislike
Pull Request已成功合入, 合并人@王明琦
(感谢 潘银 的贡献)
潘银潘银
4月17日 关联了issue:[Feature]: runtime目前不支持Gauss DB,需要改造成支持GuassDB;
openJiuwen-bot成员
4月17日 评论:

欢迎来到 openJiuwen 社区

Hey @ipanyin , 感谢你对社区的贡献.

机器人使用手册

有关指令的使用,可以点击 此处 查看详情。开发人员可以在每个PR或Issue下方评论特定指令来触发机器人任务。

联系指引

如果您有任何疑问,请联系仓库维护者: @ZYQ5333, @zhuxushen, @iamcandiceguo, @Fancy1234567, @huguangzheng, @openLiBing-bot .

likedislike
OopenJiuwen-bot成员
4月17日 添加了label:openJiuwen-cla/yes
张雅晴
张雅晴成员4月20日进行代码检视3
foundation/pyproject.toml
已过期
@@ -22,6 +22,7 @@ dependencies = [
2222 "pydantic-settings==2.5.2",
2323 "aiomysql==0.2.0",
2424 "aiosqlite==0.21.0",
25+ "async-gaussdb>=0.30.4",
张雅晴
张雅晴4月20日评论:

是否可以做成可选依赖?

likedislike
System
系统消息系统
4月21日 评论:

changed this line on b6141b5b view diff detail

潘银
潘银
4月21日 评论:

已修改为可选依赖和懒导入;

潘银潘银
4月21日 强制推送  1 个提交:b6141b5b-feat(gaussdb): add optional GaussDB/openGauss runtime support
openJiuwen-bot成员
4月21日 评论:

CLA 签署成功

@ipanyin, 感谢您的代码贡献。 所有的代码贡献者都已完成了 CLA 签署。 👍

likedislike
潘银潘银
4月21日 修改了pull request 的描述
潘银潘银
4月21日 解决了最后一个问题
潘银潘银
4月21日 解决了最后一个问题
潘银潘银
4月21日 解决了最后一个问题
潘银潘银
4月21日 解决了最后一个问题
王明琦王明琦成员
4月21日 将wangmingqi设为评审人
王明琦王明琦成员
4月21日 通过了评审
王明琦王明琦成员
4月21日 关闭了关联的issue
王明琦王明琦成员
4月21日 合入了pull request