https://github.com/nesheep5/rough-erd
This tool creates a rough ER Diagram. It uses the ID to create a ERD. (Not using FOREIGN KEY)
https://github.com/nesheep5/rough-erd
db erd erdiagram golang plantuml uml uml-diagram
Last synced: 4 months ago
JSON representation
This tool creates a rough ER Diagram. It uses the ID to create a ERD. (Not using FOREIGN KEY)
- Host: GitHub
- URL: https://github.com/nesheep5/rough-erd
- Owner: nesheep5
- License: mit
- Created: 2019-03-04T00:27:50.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2019-04-11T06:04:40.000Z (about 7 years ago)
- Last Synced: 2024-06-20T09:24:01.374Z (almost 2 years ago)
- Topics: db, erd, erdiagram, golang, plantuml, uml, uml-diagram
- Language: Go
- Homepage:
- Size: 127 KB
- Stars: 3
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# rough-erd
This tool creates a rough ER Diagram.
It uses the ID to create a ERD. (Not using FOREIGN KEY)
It can make ERD Text([PlantUml](http://plantuml.com) Format), PNG, SVG, and [online editor](http://www.plantuml.com/plantuml/) URL.
## Sample ERD

## Relation Role
This tool uses the ID to relate. Not using FOREIGN KEY.
Example, `salaries` table has `employee_id`, `salaries` related `employees`.
(example sql: `SELECT * FROM employees JOIN salaries ON employees.id = salaries.employee_id;`)
## Install
```bash
go get -u github.com/nesheep5/rough-erd/cmd/rough-erd
```
## Usage
```bash
> rough-erd -h
NAME:
rough-erd - This tool creates a rough ER diagram.
USAGE:
rough_erd [global options] command [command options] [arguments...]
VERSION:
v1.0.0
COMMANDS:
make, m make ER diagram.
help, h Shows a list of commands or help for one command
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
```
### make command
```bash
> rough-erd make -h
NAME:
rough_erd make - make ER diagram.
USAGE:
rough_erd make [command options] [arguments...]
OPTIONS:
--dbtype value database type (default: "mysql")
--user value, -u value database user
--password value, -p value database password
--host value, -H value database host (default: "127.0.0.1")
--port value, -P value database port (default: 3306)
--protocol value database protocol
--name value, -n value database name
--output value, -o value output style [text, url, png, svg] (default: "text")
```
## Example
https://github.com/nesheep5/rough-erd/tree/master/example
### Run TestDB
```bash
> cd $[GOPATH]/src/github.com/nesheep5/rough-erd/example
> docker-compose up -d --build
> mysql -P23306 -uroot -prough-erd --protocol=TCP -Dtest
mysql: [Warning] Using a password on the command line interface can be insecure.
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 5.7.25 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show tables;
+----------------+
| Tables_in_test |
+----------------+
| departments |
| dept_emp |
| dept_manager |
| employees |
| salaries |
| titles |
+----------------+
6 rows in set (0.00 sec)
```
### make UML Text
```bash
> rough_erd make -P 23306 -u root -p rough-erd -protocol tcp -n test -o text
@startuml
title ER Diagram
entity "departments" {
id
}
entity "dept_emp" {
id
employee_id
department_id
}
entity "dept_manager" {
id
employee_id
department_id
}
entity "employees" {
id
}
entity "salaries" {
id
employee_id
}
entity "titles" {
id
employee_id
}
dept_emp -- employees :employee_id
dept_emp -- departments :department_id
dept_manager -- employees :employee_id
dept_manager -- departments :department_id
salaries -- employees :employee_id
titles -- employees :employee_id
@enduml
```
### make UML URL
```bash
> rough_erd make -P 23306 -u root -p rough-erd -protocol tcp -n test -o url
Open → http://www.plantuml.com/plantuml/uml/UDgKaKsgmp0CXFSwXSW-5yWgY_Skq0i4WKKGM6wmrKKelNlfZnstAIvTppVZ6Gl6P1Jjf1vCp3F-7_1FQ8wamC74LkmSBnHDELZgy0pYu59hDh4kJu5rySULUH87cstQMvG2pHn_i6Lcto6HfoX5gCCswBxkCv8tODzZUGM7jr85gRu3XzUszRHlQHNMICpR6ccFPGrWvE1k1xu6003__qByi0K0
```
Open → http://www.plantuml.com/plantuml/uml/UDgKaKsgmp0CXFSwXSW-5yWgY_Skq0i4WKKGM6wmrKKelNlfZnstAIvTppVZ6Gl6P1Jjf1vCp3F-7_1FQ8wamC74LkmSBnHDELZgy0pYu59hDh4kJu5rySULUH87cstQMvG2pHn_i6Lcto6HfoX5gCCswBxkCv8tODzZUGM7jr85gRu3XzUszRHlQHNMICpR6ccFPGrWvE1k1xu6003__qByi0K0
### make UML png
```bash
> rough_erd make -P 23306 -u root -p rough-erd -protocol tcp -n test -o png > uml.png
> open uml.png
```

### make UML svg
```
> rough_erd make -P 23306 -u root -p rough-erd -protocol tcp -n test -o svg > uml.svg
> open uml.svg -a /Applications/Google\ Chrome.app/
```
