1

我们使用 SQL 查询来完成我们公司 (PostgreSQL) 的大部分分析工作。目前有 250 多个查询存储在固定的目录结构中(还有很多 DDL/DML 文件)。

是否有任何自动文档工具来创建所有这些查询的文档并产生一些输出(例如 html)?

我知道有一些工具可用于函数/表/过程文档,但没有一个(据我了解)适合查询,例如:

在文档中,我想跟踪以下内容:

  • 文件名
  • sql描述
  • 作者
  • 项目
  • 标签

固定目录结构的局限性是显而易见的——查询在逻辑上属于更多文件夹的情况很多时候,但您也只能选择一个。我们曾尝试使用 trac wiki,但它很复杂(您必须将查询的每个版本复制/粘贴到 wiki)。另一方面,您可以使用标签,它很容易搜索并且您有版本控制。我也尝试过使用一些带有高级内置搜索的查询工具(例如 eclipse 的 toad 插件),但是您必须编写非常复杂的正则表达式才能获取您感兴趣的文件。

这就是为什么我认为 autodoc 方法是完成这项任务的唯一可能方式。

4

2 回答 2

1

我不认为这样的工具对于一般用例来说是很容易的,所以你最好的选择是按照约定来编写你自己的。最重要的是,许多 SQL 文档生成器会尝试跟踪依赖关系等。您可以相对轻松地使用表执行此操作(例如动态发现外键),并且在某些情况下您可以使用函数执行此操作,但除此之外,它变得非常难的。注意我postgresql_autodoc用于 db 对象。能够跟踪表是有问题的(如果查询以不同的方式运行search_path怎么办?有很多事情你不知道......)。

如果是我,我会考虑修改 doxygen 以跟踪您想要的信息。仅当每个文件有一个 sql 语句时,才可以进一步执行此操作。例如,记录文件是一回事,但与记录查询却大不相同。

但是,我建议采用可发现的存储过程接口并将注释放在 SQLCOMMENT ON语句中。这就是我们所做的,它使自动文档变得更加容易。然后,您可以根据需要使用 postgresql_autodoc 或其他工具。

于 2013-04-24T08:25:03.827 回答
0

我所知道的唯一一个是基于 MS SQL 的:http: //www.apexsql.com/sql_tools_doc.aspx

于 2013-02-08T09:31:58.653 回答