Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Q&A

Welcome to Software Development on Codidact!

Will you help us build our independent community of developers helping developers? We're small and trying to grow. We welcome questions about all aspects of software development, from design to code to QA and more. Got questions? Got answers? Got code you'd like someone to review? Please join us.

Comments on How can I generate documentation from comments in SQL DDL?

Post

How can I generate documentation from comments in SQL DDL?

+4
−0

I have some SQL scripts that contain DDL to create tables and schemas for a database. I'd like to be able to comment this SQL and then use those comments to generate output documentation (in HTML). I want to be able to document the purpose of each table and table column, and have the output be nicely organized with a summary at the top and links to the specific tables (like the summary of methods on a class in Doxygen output). If it matters, the SQL is a member of the PostgreSQL family.

The specific purpose is to include schema documentation in published examples for a SQL platform -- so we want to, for example, describe a sample database and then use it to support examples of other queries, functions, etc. (I could imagine this also being used to give documentation to non-DBAs who are configuring BI tools on top of a database, but that is not my use case.)

The consumers of the documentation are not necessarily using this DDL (unless they run our scripts to set it up for themselves). We are currently documenting the tables by hand, which opens the door to the doc and DDL becoming out of sync in the future.

How can I go about generating this kind of comment-driven documentation?

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

1 comment thread

General comments (10 comments)
General comments
Canina‭ wrote about 4 years ago

You do give a specific purpose, but I'm still struggling to see how what you're asking for would really help. Usually the only consumers of the objects defined by DDL (tables, views, etc.) are going to be other developers working within the same database; quite often, the external interface to the database is better defined by stored procedures, or a similar construct in a database-client layer. While the same issue of documentation remains, it seems to me that the scope is different.

Ringi‭ wrote about 4 years ago

In the past I have seen a table used to store the description of each table/column then a report generator to create the document. A simple unit test can check there is a description for each table/column.

Monica Cellio‭ wrote about 4 years ago

@Canina this is to support examples in published documentation about a SQL platform. I'll edit.

Lundin‭ wrote about 4 years ago

The question is if tool recommendation questions are on-topic or off-topic to begin with. This draft proposal, which is arguably not community consensus (yet) would have made this question off-topic, for the reason "Off-topic: Recommendation questions about which tools, libraries or technologies to use or where to find them."

Monica Cellio‭ wrote about 4 years ago

@Lundin good question, which I hadn't considered. Questions about tools (like javadoc, git, etc) were on-topic on SO, so I made a logical leap here which might not be warranted. At the core I'm trying to solve a technical problem and don't know if a tool exists at all. That feels a little different from "which should I use, git or svn?", for example, but maybe it's still on the wrong side of the line?

Lundin‭ wrote about 4 years ago

Pretty sure it would be closed on SO, they have very low tolerance for "which tools exist". Though if that phrase is simply changed to "how to document SQL DDL" then it should be under the (supposedly) broader scope of this site, which includes software documentation questions and also perhaps "what's best" questions with a well-defined "best".

Monica Cellio‭ wrote about 4 years ago

@Lundin I made some edits based on your comments. Is that better?

Lundin‭ wrote about 4 years ago

Yep, looks good as far as I'm concerned :) If tool recommendations are to be off-topic, we should probably come up with some examples of on-topic/off-topic and place such in the community help.

dmckee‭ wrote about 4 years ago · edited about 4 years ago

I'm actually quite interested in this question for myself. We're using Doxygen for the rest of our code, but we don't have any tooling for the DB beyond a schemacrawler script that generates a PDF schema diagram. Notes about how a table is intended to be used are written in un-formatted comments, but that requires reading the code.