【发布时间】:2010-11-20 18:37:46
【问题描述】:
有哪些工具(商业或 OSS)提供基于 GUI 的机制来创建架构升级脚本?需要明确的是,以下是工具职责:
- 获取与最新架构版本(称为“源”)的连接。
- 获得与先前架构版本(称为“目标”)的连接。
- 比较源和目标之间的所有架构对象。
- 创建一个脚本,使目标架构等同于源架构(“升级脚本”)。
- 创建一个回滚脚本以恢复源架构,在升级脚本失败时使用(在任何时候)。
- 为架构对象创建单独的文件。
软件必须:
- 对重命名的列使用 ALTER TABLE 而不是 DROP 和 CREATE。
- 使用 Oracle 10g 或更高版本。
- 创建可以批量执行的脚本(通过命令行)。
- 简单的安装过程。
- (奖励)创建可以使用 SQL*Plus 执行的脚本。
以下是一些示例(来自 StackOverflow、ServerFault 和 Google 搜索):
不符合标准或无法评估的软件包括:
- TOAD
- PL/SQL Developer - 无效的 SQL*Plus 语句。不产生 ALTER 语句。
- SQL Fairy - 没有安装程序。复杂的安装过程。记录不充分。
- DBDiff - 残缺的数据集评估,糟糕的客户支持。
- OrbitDB - 残缺的数据集评估。
- SchemaCrawler - 没有易于识别的 Oracle 数据库下载版本。
- SQL Compare - SQL Server,而不是 Oracle。
- LiquiBase - 需要更改开发过程。没有安装程序。手动编辑配置文件。无法识别自己的 baseUrl 参数。
评估版唯一可接受的削弱是时间。通过限制表和视图的数量来隐藏可能的错误,这些错误仅在尝试迁移数百个表和视图期间在软件中可见。
【问题讨论】: