https://github.com/achiku/planter
Generate PlantUML ER diagram textual description from PostgreSQL tables
https://github.com/achiku/planter
er-diagram plantuml posgresql
Last synced: 11 months ago
JSON representation
Generate PlantUML ER diagram textual description from PostgreSQL tables
- Host: GitHub
- URL: https://github.com/achiku/planter
- Owner: achiku
- License: mit
- Created: 2017-09-17T02:43:07.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-03-30T20:03:11.000Z (almost 2 years ago)
- Last Synced: 2025-03-20T15:39:59.321Z (11 months ago)
- Topics: er-diagram, plantuml, posgresql
- Language: Go
- Homepage:
- Size: 211 KB
- Stars: 551
- Watchers: 10
- Forks: 52
- Open Issues: 5
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ccamel - achiku/planter - Generate PlantUML ER diagram textual description from PostgreSQL tables (Go)
- awesome-postgres-with-stars - planter - 01-23 | (Utilities)
README
# planter
[](https://github.com/achiku/planter/actions/workflows/test.yml)
[](https://raw.githubusercontent.com/achiku/planter/master/LICENSE)
[](https://goreportcard.com/report/github.com/achiku/planter)
Generate PlantUML ER diagram textual description from PostgreSQL tables
## Why created
A team with only software engineers doesn't need ER diagram that much as long as they have decent experience in Relational Database modeling. However, it becomes very helpful to have always-up-to-date ER diagram when marketing/promotion/operation teams consisting of those who are fluent in writing/reading SQL, join to the game.
[PlantUML](http://plantuml.com/) supports ER diagram in the latest version with [this awesome pull request](https://github.com/plantuml/plantuml/pull/31). The tool, planter, generates textual description of PlantUML ER diagram from pre-existing PostgreSQL tables, and makes it easy to share visual structure of relations with other teams.
## Installation
```
go get -u github.com/achiku/planter
```
## Quick Start
```
$ planter postgres://planter@localhost/planter?sslmode=disable -o example.uml
$ java -jar plantuml.jar -verbose example.uml
```

## Specify table names
```
planter postgres://planter@localhost/planter?sslmode=disable \
-t order_detail \
-t sku \
-t product
```
## Help
```
$ planter --help
usage: planter []
Flags:
--help Show context-sensitive help (also try --help-long and --help-man).
-s, --schema="public" PostgreSQL schema name
-o, --output=OUTPUT output file path
-t, --table=TABLE ... target tables
-x, --exclude=EXCLUDE ... target tables
-T, --title=TITLE Diagram title
Args:
PostgreSQL connection string in URL format
```
## Test
Run on docker
```
make
```
or setup manually and run test
```
create database planter;
create user planter;
```
run `go test ./... -v`