Run schemaspy to generate a database schema documentation website.
View example documentation here: https://tj-actions.github.io/schemaspy/
...
steps:
- uses: actions/checkout@v2
- name: Run SchemaSpy
uses: tj-actions/schemaspy@v2
with:
host: postgres
port: 5432
database_name: testdb
database_type: pgsql
user: test_user
password: test_user_password
all: true
- uses: tj-actions/schemaspy@v2
id: schemaspy
with:
# Analyze all schemas in the database
# Type: boolean
# Default: "false"
all: ''
# Whether users can change the page length for anomalies
# Type: boolean
# Default: "false"
anomalies_length_change: ''
# The DataTables pageLength for anomalies
# Type: string
# Default: "10"
anomalies_page_length: ''
# Filter using a specific catalog this is usually the
# root of the database and contains schemas.
# Type: string
catalog: ''
# Whether users can change the page length for check
# constraints
# Type: boolean
# Default: "false"
check_length_change: ''
# The DataTables pageLength for check constraints
# Type: string
# Default: "10"
check_page_length: ''
# Whether users can change the page length for routines
# Type: boolean
# Default: "false"
column_length_change: ''
# The DataTables pageLength for routines
# Type: string
# Default: "50"
column_page_length: ''
# Name of the database to connect to
# Type: string
database_name: ''
# Type of database to connect to
# Type: string
# Default: "ora"
database_type: ''
# Whether users can change the page length for database
# objects
# Type: boolean
# Default: "false"
db_object_length_change: ''
# The DataTables pageLength for database objects
# Type: string
# Default: "50"
db_object_page_length: ''
# Enable debug logging
# Type: boolean
# Default: "false"
debug: ''
# Limit the degree of separation, allowed values 1 or
# 2, defaults to 2
# Type: string
# Default: "2"
degree: ''
# Path to look for JDBC drivers overrides driverPath in
# [databaseType].properties, supports directory, will add directory and recurse to
# add all content. Supports multiple paths using os dependent
# pathSeparator.
# Type: string
driver_path: ''
# Whether users can change the page length for foreign
# keys
# Type: boolean
# Default: "false"
fk_length_change: ''
# The DataTables pageLength for foreign keys
# Type: string
# Default: "10"
fk_page_length: ''
# Path to directory containing graphviz bin folder. /bin/dot will
# be appended
# Type: string
graphviz_dir: ''
# Hostname/ip to connect to, if required by databaseType.
# Type: string
host: ''
# The format of the image that gets generated. Supported
# formats are svg and png. Defaults to png.
# Type: string
# Default: "png"
image_format: ''
# Whether users can change the page length for indexes
# Type: boolean
# Default: "false"
index_length_change: ''
# The DataTables pageLength for indexes
# Type: string
# Default: "10"
index_page_length: ''
# Print license, it will first print GPL and then
# LGPL (LGPL is addition to GPL)
# Type: boolean
# Default: "false"
license: ''
# Try to generate low quality diagrams, depending on renderers/Graphviz
# installation might not be available
# Type: boolean
# Default: "false"
low_quality: ''
# Whether DataTables for anomalies should have pagination
# Type: boolean
# Default: "false"
no_anomalies_paging: ''
# Whether DataTables for check constraints should have pagination
# Type: boolean
# Default: "false"
no_check_paging: ''
# Whether DataTables for routines should have pagination
# Type: boolean
# Default: "false"
no_column_paging: ''
# Whether DataTables for database objects should have pagination
# Type: boolean
# Default: "false"
no_db_object_paging: ''
# Whether DataTables for foreign keys should have pagination
# Type: boolean
# Default: "false"
no_fk_paging: ''
# Skip html generation
# Type: boolean
# Default: "false"
no_html: ''
# Do not look for implied relationships
# Type: boolean
# Default: "false"
no_implied: ''
# Whether DataTables for indexes should have pagination
# Type: boolean
# Default: "false"
no_index_paging: ''
# Whether DataTables for routines should have pagination
# Type: boolean
# Default: "false"
no_routine_paging: ''
# Whether DataTables for database tables should have pagination
# Type: boolean
# Default: "false"
no_table_paging: ''
# Directory to place the generated files in
# Type: string
# Default: "docs"
output_dir: ''
# Password to connect to database, if required by databaseType.
# Type: string
password: ''
# Port that dbms listens to, if required by databaseType.
# Type: string
port: ''
# Specify which renderer to use should be prefixed with
# `:`. Example `:cairo`
# Type: string
renderer: ''
# Whether users can change the page length for routines
# Type: boolean
# Default: "false"
routine_length_change: ''
# The DataTables pageLength for routines
# Type: string
# Default: "50"
routine_page_length: ''
# Name of the schema to analyze (defaults to the specified user)
# Type: string
schema: ''
# Single schema analysis file path to SchemaMeta_xml, when running
# `_all` or `_schemas` path to directory containing SchemaMeta_xmls with
# pattern (DatabaseName|Schema).meta.xml
# Type: string
schema_meta: ''
# Use single sign on, if required by databaseType.
# Type: boolean
# Default: "false"
sso: ''
# Whether users can change the page length for database
# tables
# Type: boolean
# Default: "false"
table_length_change: ''
# The DataTables pageLength for database tables
# Type: string
# Default: "50"
table_page_length: ''
# Username to connect with, if required by databaseType.
# Type: string
user: ''
# Use vizjs instead of graphviz
# Type: boolean
# Default: "false"
vizjs: ''
Run
docker pull ghcr.io/tj-actions/schemaspy:latest
Note
- The entrypoint is the
entrypoint.sh
script which requires certain environment variables to be set.
docker run -v "$PWD:/docs" -e INPUT_HOST=localhost -e INPUT_PORT=5432 -e INPUT_DATABASE_TYPE=pgsql -e INPUT_USER=test_user -e INPUT_PASSWORD=test_user_password -e INPUT_ALL=true ghcr.io/tj-actions/schemaspy:latest
For more information on each environment variable please refer to the inputs. A general rule would be to prefix the environment variable with INPUT_
and the uppercase of any specific input separated by underscores.
- Free software: MIT license
If you feel generous and want to show some extra appreciation:
This package was created with Cookiecutter using cookiecutter-action
Report bugs at https://github.com/tj-actions/schemaspy/issues.
If you are reporting a bug, please include:
- Your operating system name and version.
- Any details about your workflow that might be helpful in troubleshooting.
- Detailed steps to reproduce the bug.