---
name: "sqlt-diagram"
section: "1p"
platform: "linux"
package: "libsql-translator-perl"
version: "1.66-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/sqlt-diagram"
---

# sqlt-diagram(1p)

Automatically create a diagram from a database schema

## NAME

sqlt-diagram - Automatically create a diagram from a database schema

## SYNOPSIS

```
  ./sqlt-diagram -d|-f|--from|--db=db_parser [options] schema.sql
  Options:
    -o|--output        Output file name (default STDOUT)
    -i|--image         Output image type ("png" or "jpeg," default "png")
    -t|--title         Title to give schema
    -c|--cols          Number of columns
    -n|--no-lines      Don't draw lines
    --font-size        Font size ("small," "medium," "large," or "huge,"
                       default "medium")
    --gutter           Gutter size between tables
    --color            Add colors
    --show-fk-only     Only show fields that act as primary
                       or foreign keys
    --natural-join     Perform natural joins
    --natural-join-pk  Perform natural joins from primary keys only
    -s|--skip          Fields to skip in natural joins
    --skip-tables      Comma-separated list of table names to exclude
    --skip-tables-like Comma-separated list of regexen to exclude tables
    --debug            Print debugging information
```

## DESCRIPTION

This script will create a picture of your schema.  Only the database driver argument (for SQL::Translator) is required.  If no output file name is given, then image will be printed to STDOUT, so you should redirect the output into a file.

The default action is to assume the presence of foreign key relationships defined via "REFERENCES" or "FOREIGN KEY" constraints on the tables.  If you are parsing the schema of a file that does not have these, you will find the natural join options helpful.  With natural joins, like-named fields will be considered foreign keys. This can prove too permissive, however, as you probably don't want a field called "name" to be considered a foreign key, so you could include it in the "skip" option, and all fields called "name" will be excluded from natural joins.  A more efficient method, however, might be to simply deduce the foreign keys from primary keys to other fields named the same in other tables.  Use the "natural-join-pk" option to achieve this.

## AUTHOR

Ken Youens-Clark \<kclark@cpan.org\>.
