我们使用SQL查询来完成我们公司的大部分分析工作(PostgreSQL)。目前,有250多个查询存储在固定目录结构中(还有很多DDL / DML文件)。
是否有任何autodoc工具来创建所有这些查询的文档并生成一些输出(例如html)?
我知道有一些工具可用于函数/表/程序文档,但没有(据我所知)它适用于查询,例如:
在文档中,我想跟踪以下内容:
固定目录结构的局限性是显而易见的 - 有很多次查询在逻辑上属于更多文件夹,但你也选择了一个。我们尝试使用trac wiki,但它很复杂(你必须将查询的每个版本复制/粘贴到wiki)。另一方面,您可以使用标签,它很容易搜索,并且您有版本控制。我也尝试过使用一些带有高级内置搜索功能的查询工具(例如eclipse的toad插件),但你必须编写相当复杂的正则表达式来获取你感兴趣的文件。
这就是为什么我认为autodoc方法是完成此任务的唯一可行方法。
我不认为这样的工具对于一般用例来说是不可能的,所以你最好的选择是遵守惯例就是自己编写。最重要的是,许多用于SQL的文档生成器将尝试跟踪依赖关系等。您可以相对容易地对表执行此操作(例如,动态发现外键),在某些情况下,您可以使用函数执行此操作,但除此之外,它变为真正的难。注意我使用postgresql_autodoc
作为数据库对象。能够跟踪表格是有问题的(如果使用不同的search_path
运行查询怎么办?有很多事情你不知道......)。
如果是我,我会考虑修改doxygen来跟踪你想要的信息。只有每个文件有一个sql语句时,才可以执行此操作。例如,文档文件是一回事,但文档查询却非常不同。
但是,我建议采用可发现的存储过程接口,并将注释放在SQL COMMENT ON
语句中。这就是我们所做的,它使自动文档更容易。然后,如果需要,可以使用postgresql_autodoc或其他工具。
我所知道的唯一一个是基于MS SQL的:http://www.apexsql.com/sql_tools_doc.aspx