plantuml2mysql
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

plantuml2mysql

Parse plantuml class diagrams into mysql

Installation

npm i plantuml2mysql

Usage

Terminal

npx plantuml2mysql database.md database.sql

By code

import plantuml2mysql from 'plantuml2mysql'
import fs from 'fs'
import path from 'path'
 
plantuml2mysql(path.join(__dirname, './database.md')).then(
  (result) => {
    fs.writeFileSync('./database.sql', result)
  }
)
 

Plantuml Class example

@startuml database diagram
  class Cart {
    #id INT AUTO_INCREMENT
    -userId UNIQUE REF(user.id)
    timestamp TIMESTAMP
  }

  class CartIngredientList {
    +cartId REF(cart.id)
    +ingredientId REF(ingredient.id)
    ..
    quantity TINYINT NN
    later BOOLEAN DEFAULT(true)
    checked BOOLEAN NN DEFAULT(false)
  }

  class Ingredient {
    #id INT AUTO_INCREMENT
    ..
    name VARCHAR(70) UNIQUE
  }
  
  class User {
    #id INT AUTO_INCREMENT
    -roleId NN DEFAULT(0) REF(role.id)
    ..
    name VARCHAR(70) NN DEFAULT(Joao)
    age SMALLINT
    dateOfBirth DATE
    email VARCHAR(320) NN UNIQUE
    gender TINYINT
    floatField FLOAT
    doubleField DOUBLE
  }
  
  class Role {
    #id INT AUTO_INCREMENT
    ..
    name VARCHAR(20) NN
  }

  class NoPrimaryKeyTable {
    parameter INT
  }
  
  User "0..*" o--o "1" Role

  User "1" *--o "0..1" Cart

  Cart "0..*" o--o "1..*" Ingredient
  (Cart, Ingredient) .. CartIngredientList

@enduml

diagram

Column structure

Example columns

  • #id INT AUTO_INCREMENT
  • checked BOOLEAN NN DEFAULT(false)

Structure

  1. Key type (#, -, +), this is optional
  2. Column name
  3. column data type
  4. any other properties

Detailed metadata

meta data description example
# Primary key #id
- Foreign key -userId
+ Primary key and Foreign key, for relation tables +cartId
AUTO_INCREMENT auto increment field
UNIQUE adds a unique index to the field
REF(table.column) sets the foreign key reference REF(user.id)
NN Not Null field
DEFAULT(value) sets the default value DEFAULT(10)

Dependencies (1)

Dev Dependencies (7)

Package Sidebar

Install

npm i plantuml2mysql

Weekly Downloads

3

Version

0.2.1

License

MIT

Unpacked Size

242 kB

Total Files

27

Last publish

Collaborators

  • jwebcoder