Awesome
<h1 align="center">Welcome to prisma-uml 👋</h1>A CLI to transform a Prisma schema to a PlantUML Entity RelationShip Diagram
Installation
Using npx
If you don't want to install the CLI but just execute it, you can use it through npx
this way
npx prisma-uml --help
Install with npm
You can also install the CLI globally
npm i -g prisma-uml
prisma-uml --help
Commands
prisma-uml <path> [options]
Generate a plantUML from a Prisma schema
prisma-uml <path> [--output] [--server] [--file]
Argument
Name | Description |
---|---|
path | Path to Prisma schema. |
Options
Name | Alias | Description | Type / Choices | Default |
---|---|---|---|---|
--output | -o | Output of the diagram | string / [text | svg | png | jpg] | text |
--server | -s | PlantUML Server URL | string | https://www.plantuml.com/plantuml |
--file | -f | Filename or File full path to output | string |
# Output a plantUML Entity Relation Diagram as text
prisma-uml ./schema.prisma
# Save the diagram into a .plantuml file
prisma-uml ./schema.prisma > my-erd.plantuml
# Output a diagram as SVG
prisma-uml ./schema.prisma --output svg --file my-erd.svg
# Output a diagram as PNG
prisma-uml ./schema.prisma -o png -f my-erd.png
# Use a plantUML custom server to render the image
prisma-uml ./schema.prisma --server http://localhost:8080
</p>
</details>
Image Rendering
Using the official PlantUML server online
PlantUML usually requires to have Java installed or a server to render the images. By default the official online server (https://www.plantuml.com/plantuml) is used to render the images. The plantUML diagram is first compressed then encoded (plantUML encoding) and finally sent to the server to execute the rendering.
Using a local server with Docker
You might want to avoid sending your diagram over the wire for some reason, prisma-uml
allows you to specify a custom/local server. You could easily run your own local server using Docker:
docker run -d -p 8080:8080 plantuml/plantuml-server:jetty
You server is now available (depending of you Docker installation) at http://localhost:8080
. You can then use prisma-uml
as follow:
prisma-uml ./schema.prisma --server http://localhost:8080
Demo
Incoming changes
- Feat: Split attributes by entity (scalar, enum, navigation fields / external type).
- Feat: Group relations by entities.
- Feat: NextJs Preview that run the CLI on server to render a prisma schema to a plantUML ERD ?
- Feat: Display Version Number
- Feat: Handle
-o text -f my-erd.puml|.wsd|.plantuml...
- Remove
--output
in favor of extension handling (.svg, .png, .jpg, .puml...) (?) - Fix: Multiple cardinalities when should be online one (see simple example)
- Feat: Add logging to stdout to describe what the CLI is doing
Authors
👤 Brendan Stromberger
- Github: @bstro
👤 Yann Renaudin
- Github: @emyann
Show your support
Give a ⭐️ if this project helped you!