mysqldoc is a command-line utility to auto-document MySQL Schema. Output formats include XML, HTML, and TXT. mysqldoc takes COMMENT arguments and translates them into useful formats.
Instead of the typical table creation statement like
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL auto_increment,
`email` varchar(32) NOT NULL,
`pw_hash` char(40) NOT NULL COLLATE latin1_general_cs,
`date_created` timestamp NOT NULL default CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
);
mysqldoc encourages embedding documentation within the schema itself:
CREATE TABLE `user` (
`id` int(10) unsigned NOT NULL auto_increment COMMENT 'System-Generated Primary Key',
`email` varchar(32) NOT NULL COMMENT 'Email address (used for login) of the user',
`pw_hash` char(40) NOT NULL COLLATE latin1_general_cs COMMENT 'SHA-1 hash of the password',
`date_created` timestamp NOT NULL default CURRENT_TIMESTAMP COMMENT 'System-Generated timestamp of record creation',
PRIMARY KEY (`id`),
UNIQUE (`email`)
) COMMENT 'Holds user-specific information for login';
Sample Usage:
shell> ./mysqldoc --help
Usage:
mysqldoc [options]
Options:
--databases=database[,< database >[,...]]
Database(s) to use. Comma-Separated, if more than one.
--help Display this help and exit.
--host=< hostname > Connect to host.
--html-links Include HTML hyperlinks (only in HTML output) to
relevant MySQL documentation.
--no-html-links Do not include links to MySQL documentation.
--output=[XML | HTML | TXT] The format in which to generate the output.
--password[=< password >] Password to use when connecting to server. If password is
not given, it is asked from the tty.
--port=# Port number to use for connection.
--print-defaults Print the program argument list and exit.
--show-engines Show the storage engine for each table.
--no-show-engines Do not show the storage engine for each table.
--show-indexes Show the indexes on each table.
--no-show-indexes Do not show the indexes on each table.
--show-size[=B | KB | MB | GB | TB]
Show storage size (for tables, indexes, and databases).
--no-show-size Do not show storage size.
--show-triggers Show TRIGGERS associated with each table.
--no-show-triggers Do not show TRIGGERS associated with each table.
--show-trigger-body Show TRIGGER bodies (implies --show-triggers).
--no-show-trigger-body Do not show TRIGGER bodies.
--show-udf Show User-Defined Functions.
--no-show-udf Do not show User-Defined Functions.
--show-udf-body Show UDF bodies (implies --show-udf).
--no-show-udf-body Do not show UDF bodies.
--socket Socket file to use for connection.
--ssl Enable SSL for connection (automatically enabled with
other flags).
--ssl-ca=name CA file in PEM format (check OpenSSL docs, implies
--ssl).
--ssl-capath=name CA directory (check OpenSSL docs, implies --ssl).
--ssl-cert=name X509 cert in PEM format (implies --ssl).
--ssl-cipher=name SSL cipher to use (implies --ssl).
--ssl-key=name X509 key in PEM format (implies --ssl).
--tables=< table >[,< table >[,...]]
Enumerated list of tables for the script to be run against.
Each table must be specified with both database and table
names, e.g. database_name.table_name.
--ignore-tables=< table >[,< table >[,...]]
Enumerated list of tables to be skipped (all unnamed tables
will be included). Each table must be specified with both
database and table names, e.g. database_name.table_name.
--user=< username > Username to use when connecting to server.
--version Output version information and exit.
defaults are:
ATTRIBUTE VALUE
-------------------------- ------------------
databases ALL (excluding `mysql` and `information_schema`)
help FALSE
host localhost
html-links TRUE
show-indexes FALSE
output TXT
password (No default value)
port 3306
print-defaults FALSE
show-engines TRUE
show-size TRUE (MB)
show-triggers FALSE
show-trigger-body FALSE
show-udf FALSE
show-udf-body FALSE
socket (No default value)
ssl FALSE
ssl-ca (No default value)
ssl-capath (No default value)
ssl-cert (No default value)
ssl-cipher (No default value)
ssl-key (No default value)
tables (No default value)
ignore-tables (No default value)
user Current user
version FALSE
Requirements:
· DBI
· DBD::mysql
· Pod::Usage
· Getopt::Long
· Switch
· Perl
What's New in This Release:
· Added support for connecting via ssl
· If no databases are specified, mysqldoc will now generate docs for all databases on the specified instance (excluding mysql and information_schema databases)
· Instead of defaulting the user to root, in defaults to the user running the script
· Short command line options are now accepted
· Began prepping the code base for 0.1.0
Product's homepage