开发者
资源
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

基于AI的SQL迁移

操作步骤

  1. 上传文件。以压缩包文件名为test_project.tar.gz,指定task_id为例。
    curl.exe -X POST "http://xx.xx.xx.xx:xxxx/upload?task_id=20260520_064138_e5f0" -H "x-file-name: test_project.tar.gz" -T "D:\demo\test_project.tar.gz"

    返回信息如下。

    {
        "code": 200,
        "message": "文件上传成功!",
        "task_id": "20260520_064138_e5f0",
        "project_path": "test_project"
    }
    • 若指定task_id,则以指定的task_id为准。若指定的task_id不存在,则会报错。
    • 若未指定task_id,则会自动分配一个task_id。
  2. 询问可以帮忙做什么,使用上一步返回的task_id,确保处于同一会话。若不指定task_id,则会自动分配一个task_id。
    • Windows命令(CMD):
      curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d "{\"instruction\":\"你可以帮忙做什么\",\"task_id\":\"20260520_064138_e5f0\"}"
    • Windows命令(PowerShell):
      curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{\"instruction\":\"你可以帮忙做什么\",\"task_id\":\"20260520_064138_e5f0\"}'
    • Linux/MacOS命令:
      curl -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{"instruction":"你可以帮忙做什么","task_id": "20260520_064138_e5f0"}'

    返回信息如下。

    我可以帮您完成以下任务:
    
    1. C++ 源码迁移(x86_64 → 鲲鹏架构)
       - 自动分析 C++ 项目在跨架构迁移过程中的兼容性问题
       - 源码扫描与架构差异识别(向量指令、内联汇编、字节序等)
       - 依赖库兼容性核查
       - 构建脚本(CMake/Makefile)调整建议
       - 自动生成迁移补丁和详细报告
       - 支持的项目类型:包含 CMakeLists.txt 或 Makefile 的 C++ 项目
    
    2. SQL 数据库迁移
       - 自动化 SQL 语法转换
       - 支持的源数据库:MySQL、Oracle、DB2
       - 支持的目标数据库:DM(达梦)、Vastbase、KINGBASE(人大金仓)、MySQL、GoldenDB
       - 自动生成迁移后的 SQL 文件
    
    如果您有具体的迁移需求,请告诉我:
    - 对于 C++ 迁移:提供项目路径(需包含构建文件)
    - 对于 SQL 迁移:提供源数据库类型、目标数据库类型和项目路径
    
    您想执行哪个任务呢?
  3. 执行SQL迁移。以从Oracle到GoldenDB为例。
    • Windows命令(CMD):
      curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d "{\"instruction\":\"对test_project项目进行SQL迁移,从Oracle到GoldenDB\",\"task_id\":\"20260520_064138_e5f0\"}"
    • Windows命令(PowerShell):
      curl.exe -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{\"instruction\":\"对test_project项目进行SQL迁移,从Oracle到GoldenDB\",\"task_id\":\"20260520_064138_e5f0\"}'
    • Linux/MacOS命令:
      curl -X POST "http://xx.xx.xx.xx:xxxx/run" -H "Content-Type: application/json" -d '{"instruction":"对test_project项目进行SQL迁移,从Oracle到GoldenDB","task_id": "20260520_064138_e5f0"}'

    返回信息如下。

    正在执行: Bash, 参数: {'command': '/home/DevKit-AI-x.x.x-Linux-Kunpeng/porting_workflow_cli --mode sql --db-source-type Oracle --db-target-type GoldenDB --project-dir /home/DevKit-AI-x.x.x-Linux-Kunpeng/uploads/20260520_064138_e5f0/test_project', 'working_directory': '/home/DevKit-AI-x.x.x-Linux-Kunpeng'}
                  .
                  .
                  .
    开始 SQL 迁移: Oracle -> GoldenDB
    AI改写并发数: 2, 超时时间: 100秒
    ------------------------------------------------------------ SQLTransform ------------------------------------------------------------
    开始DevKit SQL迁移工具调用...
    Progress: [2%]
    Progress: [54%]
    Progress: [100%]
    完成DevKit SQL迁移工具调用。
    ------------------------------------------------------------ SQLAIRewrite ------------------------------------------------------------
    开始AI辅助迁移,并生成修改方案...
    AI改写配置 - 最大并发: 2, 超时时间: 100秒
    开始并发AI改写,文件数: 2, 最大并发: 2, 超时: 100秒
    改写进度【1/2文件】,AI辅助迁移文件test_project_f2d183492d65471eb7765b3959fef0ea/origin/test_nextval.xml
    改写进度【2/2文件】,AI辅助迁移文件test_project_f2d183492d65471eb7765b3959fef0ea/origin/test_casewhen.xml
    修改记录已保存到: test_project_f2d183492d65471eb7765b3959fef0ea/tmp/convert_record.json
    完成AI辅助迁移,生成patch。
    ------------------------------------------------------------ SQLAIRewriteStatistics ------------------------------------------------------------
    开始 AI 改写结果统计...
    SQL AI 改写统计结果:
    不兼容-快速修复       (Incompatible Quickfix Rewrite       ):   6 个
    不兼容-基于知识改写   (Incompatible Rewrite Based Knowledge):   2 个
    不兼容-AI判断需改写   (Incompatible AI Rewrite Required    ):   0 个
    不兼容-AI判断不需改写 (Incompatible AI Rewrite Not Required):   0 个
    待确认-AI判断需改写   (Unconfirmed AI Rewrite Required     ):   0 个
    待确认-AI判断不需改写 (Unconfirmed AI Rewrite Not Required ):   0 个
    AI改写-模型超时       (AI Rewrite Timeout                  ):   0 个
    已兼容                (Compatible                          ):   2 个
    完成 AI 改写结果统计。
    ------------------------------------------------------------ SQLPatchApply ------------------------------------------------------------
    开始应用补丁...
    已生成 result.patch 文件: test_project_f2d183492d65471eb7765b3959fef0ea/project_info/result.patch
    已生成 Excel 文件: test_project_f2d183492d65471eb7765b3959fef0ea/project_info/convert_record.xlsx
    完成补丁应用。原项目路径test_project_f2d183492d65471eb7765b3959fef0ea/origin,修改后项目路径test_project_f2d183492d65471eb7765b3959fef0ea/result
    SQL 迁移完成! 结果保存在: test_project_f2d183492d65471eb7765b3959fef0ea
    SQL迁移任务已成功完成!
    
    迁移概况:
    - 源数据库:Oracle
    - 目标数据库:GoldenDB
    - 项目路径:/home/demo/xxx/uploads/20260519_065533_2a82/test_project
    
    迁移统计结果:
    - 处理文件数:2个SQL文件
    - 不兼容-快速修复:6个
    - 不兼容-基于知识改写:2个
    - 已兼容:2个
    
    输出文件位置:
    - 工作空间:test_project_f2d183492d65471eb7765b3959fef0ea
    - 原始文件:test_project_f2d183492d65471eb7765b3959fef0ea/origin
    - 迁移后文件:test_project_f2d183492d65471eb7765b3959fef0ea/result
    - 补丁文件:test_project_f2d183492d65471eb7765b3959fef0ea/project_info/result.patch
    - Excel报告:test_project_f2d183492d65471eb7765b3959fef0ea/project_info/convert_record.xlsx
    
    迁移已成功完成,共发现8个需要改写的不兼容项,均已处理。您可以查看Excel报告了解详细的修改记录。
    还需要其他帮助吗?
  4. 下载迁移结果。
    curl.exe -o "result.zip" "http://xx.xx.xx.xx:xxxx/download?task_id=20260520_064138_e5f0&download_result_path=20260520_064138_e5f0/test_project_f2d183492d65471eb7765b3959fef0ea/"

    返回信息如下所示。

      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
    100 17385  100 17385    0     0  79516      0 --:--:-- --:--:-- --:--:-- 79747