Skip to content

qazsato/schemaspy-yml-to-xml

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

19 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

schemaspy-yml-to-xml

test NPM Version NPM Downloads NPM License

A CLI tool to convert YAML schema files to SchemaSpy XML format.

Usage

npx schemaspy-yml-to-xml -i <input.yml> [-o <output.xml>]

Options

  • -i, --input <file> - Input YAML file path (required)
  • -o, --output <file> - Output XML file path (default: schemameta.xml)
  • -h, --help - Show help

YAML Schema Format

This tool supports all SchemaSpy schemaMeta.xml features. Here are some examples:

Basic Schema

comments: |
  Database schema documentation
  Multi-line comments supported

tables:
  - name: users
    comments: User table
    columns:
      - name: id
        type: INT
        primaryKey: true
        comments: Primary key
      - name: email
        type: VARCHAR
        size: 255
        nullable: false
        comments: User email address
    primaryKey: id

Advanced Features

tables:
  # Remote table
  - name: CONTRACTS
    remoteCatalog: other_db
    remoteSchema: other_schema
    comments: Remote table example
    columns:
      - name: contract_id
        type: INT
        primaryKey: true
        autoUpdated: true

  # Column-level foreign keys
  - name: ORDERS
    columns:
      - name: user_id
        type: INT
        comments: Reference to users table
        foreignKey:
          table: users
          column: id
          type: fk
          deleteRule: CASCADE
          updateRule: RESTRICT

  # Relationship controls
  - name: PRODUCTS
    columns:
      - name: category_id
        type: INT
        disableImpliedKeys: all
        disableDiagramAssociations: all
        comments: Category reference with disabled relationships

  # Indexes and table-level foreign keys
  - name: POSTS
    columns:
      - name: id
        type: INT
        primaryKey: true
      - name: user_id
        type: INT
      - name: title
        type: VARCHAR
        size: 255
    indexes:
      - name: idx_user_posts
        unique: false
        columns:
          - user_id
          - name: created_at
            ascending: false
    foreignKeys:
      - name: fk_posts_user
        column: user_id
        referencesTable: users
        referencesColumn: id
        deleteRule: CASCADE

Output

The tool generates XML files that are fully compatible with SchemaSpy:

<?xml version="1.0" encoding="UTF-8"?>
<schemaMeta xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:noNamespaceSchemaLocation="http://schemaspy.org/xsd/6/schemameta.xsd">
  <comments>Database schema documentation</comments>
  <tables>
    <table name="users" comments="User table">
      <column name="id" type="INT" primaryKey="true" comments="Primary key"/>
      <!-- ... -->
    </table>
  </tables>
</schemaMeta>

License

This project is licensed under the terms of the MIT license.

Reference

About

CLI tool to convert YAML schema files to SchemaSpy XML format

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published