You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在SQLcl Liquibase中覆盖输出文件?

解决SQLcl中Liquibase导出Apex应用重复生成文件的问题

针对你遇到的SQLcl集成Liquibase时--overwrite-output-file参数无效、重复执行导出会生成新文件的问题,可尝试以下几种解决办法:

  • 提前清理旧输出文件
    在执行导出命令前,手动或通过脚本删除之前生成的Apex对象文件。比如在PowerShell中执行清理命令(替换为你的实际输出目录):

    Remove-Item -Path "D:\projects\RDNA2\db\rdna2-apex\apex-objects\*" -Recurse -Force
    

    之后再运行lb generate-apex-object -applicationid 200 -split命令,就能保证生成的是最新文件且不会重复累积。也可以把清理和导出命令合并成一个批处理脚本,一键执行。

  • 改用独立版Liquibase CLI
    放弃SQLcl集成的Liquibase,下载独立的Liquibase CLI版本,配置好Oracle JDBC驱动后,直接使用标准Liquibase命令执行导出,此时--overwrite-output-file参数可正常生效。示例命令如下:

    liquibase generate-apex-object --applicationid=200 --split --overwrite-output-file=true ^
    --url=jdbc:oracle:thin:@rdna2 --username=rdna2 --password=your-db-password
    
  • 通过JVM参数强制开启覆盖功能
    启动SQLcl时,添加Liquibase的JVM参数来开启输出文件覆盖:

    sql -Dliquibase.overwriteOutputFile=true rdna2@rdna2
    

    进入SQLcl交互环境后,再执行lb generate-apex-object -applicationid 200 -split命令,此时Liquibase会默认覆盖已存在的输出文件。

内容的提问来源于stack exchange,提问作者Vitaly

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 08:33:19