4

背景

系统中的数百个数据库对象(视图、包、存储过程等)没有格式,也没有源代码注释。我们想:

  1. 自动重新格式化代码(使用通用 SQL 解析器)。
  2. 自动将标准注释标题复制到每个对象的源文件中。

问题

我们不能在未经测试的情况下将如此彻底的变化推向生产。

问题

您将如何验证重新格式化的源代码在功能上与未格式化的代码相同?

谢谢!

4

3 回答 3

2

简单的:

  1. 针对全新的数据库运行未格式化的代码
  2. 针对全新的数据库运行格式化代码
  3. 对两者进行完全导出并比较这两个文件

它们应该是相同的。

它们应该相同的原因是 postgres 将 SQL 解析为其标准的规范形式,因此即使添加不必要的括号也会导致代码的内部版本相同。

于 2012-12-24T09:15:37.233 回答
0

我假设只有那些需要修改的对象才需要格式,如果是这样,我建议只格式化您正在处理的对象,最后结果应该投入生产。我使用 Oracle SQL Developer,我可以安全地处理程序单元并进行格式化。

于 2012-12-20T17:55:20.783 回答
0

对于您的问题:要将格式化的源代码与未格式化的源代码进行比较,您必须对它们中的每一个进行标记并比较结果。这实际上破坏了您最初的目标。;-)

于 2012-12-24T09:07:22.483 回答