0.2.1 • Published 4 years ago

plantuml2mysql v0.2.1

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

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 datadescriptionexample
#Primary key#id
-Foreign key-userId
+Primary key and Foreign key, for relation tables+cartId
AUTO_INCREMENTauto increment field
UNIQUEadds a unique index to the field
REF(table.column)sets the foreign key referenceREF(user.id)
NNNot Null field
DEFAULT(value)sets the default valueDEFAULT(10)
0.2.1

4 years ago

0.2.0

4 years ago

0.1.0

4 years ago

0.0.4

4 years ago

0.0.3

4 years ago

0.0.2

4 years ago