Link:
https://github.com/maru44/scheman
Scheman is a tool to visualize definition of tables in RDB.
Main purpose of this is accelerating working collaboration between engineers and non-engineers.
You can generate drawing of tables schema and ERD with one command and just a few settings by using this.
You can choose output destination from Notion, File or both of them.
Usage
I will show you usage.
Installation
install
go install github.com/maru44/scheman@v1.3.0
If you want not to install you can use by
go run github.com/maru44/scheman@v1.3.0 ...
I will proceed on the premise of scheman installed.
Setup config
Create scheman.toml(.yaml) and write database settings.
[psql]
  dbname  = "scheman"
  host    = "localhost"
  port    = 5432
  user    = "root"
  pass    = "password"
  sslmode = "disable"
  schema  = "public"
Command
I will show some examples.
Notion
First I will show you the command to write tables schema and ERD in notion.
go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-psql@v4.8.6 \
  && scheman psql --services notion --erd-outputs notion \
    --notion-token ${NOTION_TOKEN} --notion-page-id ${PSQL_NOTION_PAGE_ID}
Flag services indicates the output destinations of schema-definition.
Flag erd-outputs indicates the output destinations of ERD. 
The value of table-index is output like the following picture if the command succeeded.
If you want to overwrite schema definition and ERD in notion from next time, please set notion-page-index the value outputted in command line.
The Free Entry attribute is the attribute you can write freely. This value is inherited even if you execute scheman command next time.
The outputs will be like these pictures.
I'm sorry for these pictures are very rough.
schema-definition
https://user-images.githubusercontent.com/46714011/155822065-f0f9f785-b2b1-4abd-b98b-052496dff169.png
File
go install github.com/volatiletech/sqlboiler/v4/drivers/sqlboiler-psql@v4.8.6 \
  && scheman psql --def-file ./def.csv --erd-file ./erd.md
Flag def-file indicates the output destination file of schema-definition.
Flag erd-file indicates the output destination file of ERD.
The outputs will be like these.
schema-definition
https://github.com/maru44/scheman/blob/master/testdata/postgres/def.csv
ERD
https://github.com/maru44/scheman/blob/master/testdata/postgres/erd.md
Options
- config
- the file written configurations
 - default is 
scheman - you can use 
sqlboiler.tomlif you set thissqlboiler.toml 
 - services
- indicates the output destinations of schema-definition
 - default is 
[ ] - option is only notion yet
 
 - erd-outputs
- indicates the output destinations of ERD
 - default is 
[ ] - option is only notion yet
 
 - disable-views
- if true, 
schemanignore views - default is false
 
 - if true, 
 - attr-ignore
- which attributes ignore
 - default is 
[ ] - options are 
Data Type,PK,Auto Generate,Unique,Null,Default,Comment,Free Entry,Enum 
 
Thanks
Using sqlboiler to parse connected database.
https://github.com/volatiletech/sqlboiler
Using go-notion as notion client.
https://github.com/dstotijn/go-notion

    
Top comments (0)