Automation 是否有一个类似木偶的工具来描述数据库模式和约束?

Automation 是否有一个类似木偶的工具来描述数据库模式和约束?,automation,database-schema,puppet,Automation,Database Schema,Puppet,我们最近遇到了一个升级问题,因为数据库架构中的一列被意外地从 ("SECURED" NUMBER(1,0) DEFAULT 0 NOT NULL); 到 分析后,该列似乎已复制粘贴到SQL编辑器客户端,我们丢失了一些约束 我喜欢Puppet在主机配置方面所能做的事情:据我所知,您在清单中声明主机配置,然后Puppet检查主机是否满足配置要求,如果不满足,它将提供确保系统按照清单中声明的配置所需的一切 我希望在数据库字段中存在类似的工具:使用表、列名、类型、约束等声明数据库模式。每次运行该工具时

我们最近遇到了一个升级问题,因为数据库架构中的一列被意外地从

("SECURED" NUMBER(1,0) DEFAULT 0 NOT NULL);

分析后,该列似乎已复制粘贴到SQL编辑器客户端,我们丢失了一些约束

我喜欢Puppet在主机配置方面所能做的事情:据我所知,您在清单中声明主机配置,然后Puppet检查主机是否满足配置要求,如果不满足,它将提供确保系统按照清单中声明的配置所需的一切

我希望在数据库字段中存在类似的工具:使用表、列名、类型、约束等声明数据库模式。每次运行该工具时,它都会确保遵守模式定义,如果不遵守,则会修复它

此工具将“看到”约束
DEFAULT NULL
不正确,并将其更改为
DEFAULT 0
,从而自动修复人为错误


您知道是否存在此类工具吗?

您可以使用自动化数据库架构比较。SchemaCrawler是一个免费的命令行工具,它以文本的形式生成数据库架构详细信息,格式设计为diff-ed。您可以定期自动生成数据库架构文本文件,然后将它们与预期的文本文件进行区分。在自动修复方面,我建议在生产模式中不要这样做。您可能需要向人员发出警告,告知模式需要更新


Sualeh Fatehi,SchemaCrawler.

感谢您提供此工具。下面的例子是我在包中提供的,我试图像这样转储我的数据库表:
sh sc.sh-database=XE-user=xxxx-password=xxxx-c=serialize-infolevel=standard-command=count,dump-outputformat=html-outputfile=dump.html
。但是它失败了,因为“ORA-00942:表或视图不存在”,表为CTXSYS.DR$NUMBER_序列。如何从输出中删除系统表?请使用-schemas命令行开关仅在输出中包含所需的架构。感谢您提供的提示。我还删除了
-c=serialize
参数。它开始工作,但在打印第一个表的名称后停止转储。
("SECURED" NUMBER(1,0) DEFAULT NULL NOT NULL);