2

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

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

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

经过分析,看起来该列已被复制粘贴到 SQL 编辑器客户端中,并且我们丢失了一些约束。

我喜欢 Puppet 在主机配置方面可以做的事情:据我了解,您在清单中声明主机配置,然后 Puppet 检查主机是否满足配置要求,如果不满足,它会完成确保系统配置所需的一切如清单中所述。

我希望在数据库字段中存在类似的工具:您使用表、列名、类型、约束等声明数据库模式。每次运行该工具时,它都会确保架构定义得到尊重,如果没有,它会修复它。

该工具将“看到”约束DEFAULT NULL不正确,并将其更改为DEFAULT 0并因此通过自动化修复人为错误。

你知道这样的工具是否存在吗?

4

1 回答 1

1

您可以使用SchemaCrawler自动化数据库模式比较。SchemaCrawler 是一个免费的命令行工具,可以将数据库模式详细信息生成为文本,其格式旨在进行差异化。您可以定期自动生成数据库模式文本文件,然后将它们与预期的文本文件进行比较。在自动修复方面,我建议不要在生产模式中这样做。您可能需要提醒人们架构需要更新。

Sualeh Fatehi,SchemaCrawler。

于 2012-09-19T17:13:43.580 回答