我已经读过TOAD和Liquibase可以做到这一点,但我没有许可证。我们可以访问OEM并使用JDeveloper / SQLDeveloper,但似乎没有工具只为两个模式之间的增量生成DDL。
这是为了解决模式版本控制问题,我们在测试环境中使用vx.x,在开发中使用vx.y,并希望在(xx-xy)之间生成DDL增量以生成和检入部署脚本。
目前,我通过从开发人员那里获取脚本并手动构建一个单独的更新脚本来手动管理所有这些。
答案 0 :(得分:3)
尝试使用包dbms_metadata_diff。 示例
select DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','COUNTRIES','COUNTRIES2') from dual
答案 1 :(得分:0)
我确实在SQLDeveloper中找到了很棒的diff实用程序,这非常有用(而且在OEM中没有那么多?)。
我最终寻找一种方便的方法来生成delta DDL。例如,SCHEMA_2.TABLE_A是(foo number(22),bar varchar2(100)),SCHEMA_1.TABLE_A是(foo number(22),bar varchar(100),baz CLOB)。寻找实用程序来生成
ALTER TABLE SCHEMA_1.TABLE_A添加列(baz CLOB)
我猜这是在我拥有的工具中“免费”获得这个梦想。 :)
我们正在为我们的开发人员使用Flyway,我想我现在只需要手动管理迁移。
感谢大家提出的好建议!
干杯, 阿里克斯