我们最近遇到了升级问题,因为我们的数据库架构中的列是从
中意外修改的("SECURED" NUMBER(1,0) DEFAULT 0 NOT NULL);
到
("SECURED" NUMBER(1,0) DEFAULT NULL NOT NULL);
经过分析,看起来该列已在SQL编辑器客户端中进行了复制粘贴,我们失去了一些限制。
我喜欢Puppet在主机配置方面可以做的事情:根据我的理解,您在清单中声明主机配置,然后Puppet检查主机是否满足配置要求,如果没有,它会做出确保所需的一切system配置为清单中声明的。
我希望数据库字段中存在类似的工具:您使用表,列名,类型,约束等声明数据库模式。每次运行该工具时,它都会确保模式定义得到遵守,如果没有,则会修复它。
此工具会“看到”约束DEFAULT NULL
不正确,并且会将其更改为DEFAULT 0
,从而通过自动化修复了人为错误。
你知道这些工具是否存在吗?
答案 0 :(得分:1)
您可以使用SchemaCrawler自动执行数据库架构比较。 SchemaCrawler是一个免费的命令行工具,它以文本形式生成数据库模式详细信息,其格式设计为差异。您可以定期自动生成数据库架构文本文件,然后根据预期的文本文件对它们进行区分。在自动修复方面,我会建议在生产模式中使用它。您可能需要一个人员警报,架构需要更新。
Sualeh Fatehi,SchemaCrawler。