{"id":27733638,"url":"https://github.com/irof/jig-erd","last_synced_at":"2025-04-28T12:54:15.511Z","repository":{"id":36989319,"uuid":"285263318","full_name":"irof/jig-erd","owner":"irof","description":"ざっくりなER図を出力する設計補助道具","archived":false,"fork":false,"pushed_at":"2025-04-23T05:45:26.000Z","size":1055,"stargazers_count":16,"open_issues_count":8,"forks_count":3,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-23T06:29:56.980Z","etag":null,"topics":["erdiagram","h2database","java","postgresql"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/irof.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2020-08-05T11:05:03.000Z","updated_at":"2025-04-23T05:45:24.000Z","dependencies_parsed_at":"2025-03-27T02:36:37.216Z","dependency_job_id":"a99117dc-a4a6-4484-afac-15097dfcce8a","html_url":"https://github.com/irof/jig-erd","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irof%2Fjig-erd","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irof%2Fjig-erd/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irof%2Fjig-erd/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/irof%2Fjig-erd/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/irof","download_url":"https://codeload.github.com/irof/jig-erd/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251319042,"owners_count":21570419,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["erdiagram","h2database","java","postgresql"],"created_at":"2025-04-28T12:54:10.097Z","updated_at":"2025-04-28T12:54:15.497Z","avatar_url":"https://github.com/irof.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JIG-ERD\n\n[![MavenCentral](https://maven-badges.herokuapp.com/maven-central/com.github.irof/jig-erd/badge.svg)](https://maven-badges.herokuapp.com/maven-central/com.github.irof/jig-erd)\n[![GitHub Actions](https://github.com/irof/jig-erd/workflows/CI/badge.svg)](https://github.com/irof/jig-erd/actions?query=workflow%3ACI)\n[![AppVeyor](https://ci.appveyor.com/api/projects/status/805m3sh5reap9pbx/branch/master?svg=true)](https://ci.appveyor.com/project/irof/jig-erd/branch/master)\n\nざっくりなER図を出力します。\n現在はH2DatabaseとPostgreSQLに対応しています。\n\n関連だけに着目したデータベース設計の補助道具です。\n\nPKや列のデータ型、その他制約と言った一般的なER図で必須な項目は扱っていません。対応予定もないです。詳細な情報は他のツールの使用をお勧めします。\n\n- [Schema Spy](https://github.com/schemaspy/schemaspy)\n- [tbls](https://github.com/k1LoW/tbls)\n- [planter](https://github.com/achiku/planter)\n- [PlantERD](https://github.com/sue445/plant_erd)\n\n## サンプル\n\n以下は [system-sekkei/library](https://github.com/system-sekkei/library) で出力したサンプルです。3種類のダイアグラムが出力されます。\n\n- `jig-erd-overview.svg`: スキーマのみ\n- `jig-erd-summary.svg`: スキーマ、テーブルのみ\n- `jig-erd-detail.svg`: スキーマ、テーブル、外部キーカラム\n\nファイル名、形式は設定で変更できます。\n\n### スキーマのみ\n![overview](./document/library-erd-overview.png)\n\n### スキーマ、テーブルのみ\nテーブル名を `_` ではじめると色が変わります。\n\n![summary](./document/library-erd-summary.png)\n\n### スキーマ、テーブル、外部キーカラム\n![detail](./document/library-erd-detail.png)\n\n## 前提条件\n\n- Java21以降がインストールされていること\n- Graphvizがインストールされていること\n    - 出力形式を `DOT` にした場合は不要。この場合は自分で変換を行ってください。\n\n### 対象バージョン\n現在の最新は `0.2.X` です。\n\n|対象 | 推奨      |\n|----|---------|\n|Java| 21以降    |\n|Graphviz| 12.2.1  |\n|H2 Database Engine| 2.3.232 |\n|PostgreSQL | 11.1    |\n\n- Java11-16で使用する場合は `0.0.X` ( `0.0.16` など) を使用してください\n- Java17-20で使用する場合は `0.1.0` を使用してください\n- H2 Database Engine `1.4.200` 以前を対象にする場合、jig-erd `0.0.11` 以前を使用してください。\n\n\n#### 動作確認環境\n\n| JIG     | OS                           | Java                             | Graphviz |\n|---------|------------------------------|----------------------------------|----------|\n| `0.1.0` | AppVeyor visual studio 2022  | `17`                             | `7.0.6`  |\n| `0.1.0` | GitHub Actions ubuntu-latest | `17`                             | `2.42.2` |\n| `0.0.3` | `macOS Catalina 10.15.5`     | `AdoptOpenJDK 11.0.7`            | `2.44.1` |\n| `0.0.3` | `Windows 10`                 | `jdk-14.0.2_windows-x64_bin.exe` | `2.44.1` |\n| `0.0.3` | GitHub Actions ubuntu-latest | `11`                             | `2.40.1` |\n| `0.0.3` | AppVeyor visual studio 2015  | `11`                             | `2.38.0` |\n\n## Getting Started\n\n### jig-erd-spring-boot-autoconfigure\n\nwebアプリケーションの場合、dependencyに追加して起動するだけです。\n\n```\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.irof\u003c/groupId\u003e\n        \u003cartifactId\u003ejig-erd-spring-boot-autoconfigure\u003c/artifactId\u003e\n        \u003cversion\u003e0.2.1\u003c/version\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n- `/jig-erd` をブラウザで開くとMermaidのダイアグラムが出ます。\n    - Graphvizとは出力内容が異なります。\n    - Mermaidをメインにするかは日本語対応が微妙なので未定です。\n- `jig.erd.enabled=false` で無効になります。\n\n### コマンドラインから使う\n\n既にテーブル作成済みのDBに対して実行したい場合。\n\n- jig-erd-x.x.x.jarをダウンロード\n  - [Maven Central Repository](https://repo1.maven.org/maven2/com/github/irof/jig-erd/) などから\n- JDBCドライバ（ `postgresql-42.2.14.jar` など ）をダウンロード\n    - [JDBCドライバダウンロードページ](https://jdbc.postgresql.org/) などから\n- 実行\n\n```\njava -cp jig-erd-x.x.x.jar:postgresql-42.2.14.jar \\\n    jig.erd.JigErd {url} {user} {password}\n```\nurl, user, passは適宜置き換えてください。urlは `jdbc:postgresql://localhost:5432/test` とかです。\n\n### Spring Boot Testで使う\n\nSpringBootが `schema.sql` などを使用してセットアップしたDBのERDを出力します。\n依存に追加して、テスト経由で実行します。\n\nGradle\n```groovy\nrepositories {\n    mavenCentral()\n}\n\ndependencies {\n    testImplementation 'com.github.irof:jig-erd:latest.release'\n}\n```\n\nMaven\n```xml\n\u003cdependencies\u003e\n    \u003cdependency\u003e\n        \u003cgroupId\u003ecom.github.irof\u003c/groupId\u003e\n        \u003cartifactId\u003ejig-erd\u003c/artifactId\u003e\n        \u003cversion\u003e0.2.1\u003c/version\u003e\n        \u003cscope\u003etest\u003c/scope\u003e\n    \u003c/dependency\u003e\n\u003c/dependencies\u003e\n```\n\n```java\n@SpringBootTest\npublic class Erd {\n\n    @Test\n    void run(@Autowired DataSource dataSource) {\n        JigErd.run(dataSource);\n    }\n}\n```\n\n他の出力例は [wiki](https://github.com/irof/jig-erd/wiki) を参照してください。\n\n## 設定\n\n`jig.properties` ファイルをクラスパス、実行時のカレントディレクトリ、ユーザーホームの `.jig` ディレクトリに配置してください。 `run` メソッドを実行する場合は第二引数の `Map` でも指定できます。\n\n```properties\n# サンプル\njig.erd.output.directory=./build\njig.erd.output.prefix=library-er\njig.erd.output.format=png\n```\n\n|キー| 意味                                                                   | 許容する値                                   | 設定しない場合のデフォルト |\n|----|----------------------------------------------------------------------|-----------------------------------------|---------------|\n|`jig.erd.output.directory` | 出力先ディレクトリ                                                            | 任意のディレクトリ                               | カレントディレクトリ    |\n|`jig.erd.output.prefix` | 出力ファイル名のプレフィックス                                                      | 英数、記号（`-_.`）                            | `jig-erd`     |\n|`jig.erd.output.format` | 出力ファイルの形式                                                            | `SVG`, `PNG`, `DOT`(テキスト)               | `SVG`         |\n|`jig.erd.filter.schema.pattern` | 出力対象となるスキーマのフィルタ条件                                                   | `Pattern#compile(String)` でコンパイルできる正規表現 | フィルタしない（全て出力） |\n\nファイル名は `{jig.erd.output.prefix}-detail.{拡張子}` などになります。\n\n正規表現にマルチバイト文字を使用する場合の `jig.properties` は `UTF-8` で記述してください。\n\n### ダイアグラム全体の設定\n`jig.erd.dot.root.{設定名}` で変更できます。\n\n- `rankdir` ダイアグラムの方向です。デフォルトは `RL` [参考](https://graphviz.org/doc/info/attrs.html#d:rankdir) \n- `schemaColor` 全体に適用されるスキーマの色です デフォルトは `lightyellow`\n- `entityColor` 全体に適用されるエンティティの色です。デフォルトは `lightgoldenrod`\n\n使用できる色は [Graphviz](https://graphviz.org/doc/info/colors.html) を参照してください。\n\n### ダイアグラム個別要素のカスタマイズ\n`jig.erd.dot.custom.{任意のカスタマイズ名}` でノードの色などを設定できます。複数可能。優先順位は無いので対象指定で工夫してください。\n\n- 対象の指定（いかのいずれか一つ）\n  - `name-pattern` テーブル名に対する正規表現で指定します\n  - `alias-pattern` 別名（COMMENTなどで指定する）に対する正規表現で指定します\n  - `label-pattern` 表示されるラベル（aliasがある場合はalias、無い場合はname）に対する正規表現で指定します\n- 設定できる属性\n  - shape\n  - fillcolor\n  - color\n  - penwidth\n  - fontcolor\n  - fontsize\n  - width\n  - height\n  - fixedsize\n  - margin\n\n設定内容やデフォルト値などは [Graphvizのドキュメント](https://graphviz.org/doc/info/attrs.html) を参照してください。\n\nデフォルトで以下の設定が入り、 `_` で始まるものがオレンジ色で表示されます。\n\n```\njig.erd.dot.custom._.label-pattern=_.+\njig.erd.dot.custom._.fillcolor=orange\n```\n\n## リリース\n\n- `gradle.properties` などで設定\n  - 署名: `signing.keyId` `signing.password` `signing.secretKeyRingFile`\n  - リポジトリの認証: `ossrhUsername`, `ossrhPassword`\n\n```\nVERSION=X.X.X ./gradlew publish\n```\n\n[oosrhのリポジトリマネージャー](https://s01.oss.sonatype.org/#stagingRepositories) からCloseとRelease\n\n### SNAPSHOT\n[SNAPSHOT](https://s01.oss.sonatype.org/content/repositories/snapshots/com/github/irof/jig-erd/)\n\n## LICENSE\n\n[Apache License 2.0](LICENSE)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firof%2Fjig-erd","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Firof%2Fjig-erd","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Firof%2Fjig-erd/lists"}