如何仅在模式的两个不同版本之间为增量生成 DDL?
How to generate DDL for deltas only between two different versions of a schema?
我读过 TOAD 和 Liquibase 都可以做到这一点,但我没有许可证。我们可以访问 OEM 并正在使用 JDeveloper/SQLDeveloper,但似乎都没有工具来为两个模式之间的增量生成 DDL。
这是为了解决模式版本控制问题,我们在测试环境中有 vx.x 模式,在开发环境中有 vx.y,并且希望在(x.x 之间生成 DDL 增量-x.y) 以生成和签入部署脚本。
目前我通过从开发人员那里获取脚本并手动构建一个更新脚本来手动管理所有这些。
尝试使用包 dbms_metadata_diff。
示例
select DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','COUNTRIES','COUNTRIES2') from dual
我确实在 SQLDeveloper 中找到了很棒的 diff 实用程序,它非常有用(在 OEM 中不是那么有用吗?)。
我最终是在寻找一种方便的方法来生成增量 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)
我猜想在我拥有的工具中获得 'for free' 是一个白日梦。 :)
我们正在为我们的开发人员使用 Flyway,我想我现在只需要手动管理迁移。
感谢大家的宝贵建议!
干杯,
亚历克斯
我读过 TOAD 和 Liquibase 都可以做到这一点,但我没有许可证。我们可以访问 OEM 并正在使用 JDeveloper/SQLDeveloper,但似乎都没有工具来为两个模式之间的增量生成 DDL。
这是为了解决模式版本控制问题,我们在测试环境中有 vx.x 模式,在开发环境中有 vx.y,并且希望在(x.x 之间生成 DDL 增量-x.y) 以生成和签入部署脚本。
目前我通过从开发人员那里获取脚本并手动构建一个更新脚本来手动管理所有这些。
尝试使用包 dbms_metadata_diff。 示例
select DBMS_METADATA_DIFF.COMPARE_ALTER('TABLE','COUNTRIES','COUNTRIES2') from dual
我确实在 SQLDeveloper 中找到了很棒的 diff 实用程序,它非常有用(在 OEM 中不是那么有用吗?)。
我最终是在寻找一种方便的方法来生成增量 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)
我猜想在我拥有的工具中获得 'for free' 是一个白日梦。 :)
我们正在为我们的开发人员使用 Flyway,我想我现在只需要手动管理迁移。
感谢大家的宝贵建议!
干杯, 亚历克斯