Skip to content

Commit 4dd794e

Browse files
committed
Clarify Roadmap
No longer needed to call out d2 fmt explicitly, as rudimentary formatting currently doing the job fine Removing superflous reference to incredible-cli
1 parent af93358 commit 4dd794e

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

readme.md

+13-5
Original file line numberDiff line numberDiff line change
@@ -33,36 +33,45 @@ It is recommended to use the -l "tala" option, which renders ERD diagrams the be
3333

3434
## Features
3535

36+
3637
### Basic ERD Diagram
3738

3839
If you use the application with its defaults, and point at a MySQL database, you will get a basic ERD diagram of the database. This will include all tables, and all foreign keys which are recorded in the database information schema.
3940

41+
4042
### Grouped Tables
4143

44+
4245
As part of diagramming a large database, you may want to introduce some manual groupings of tables. This is supported by the application, and can be done by adding the groups into a .json file and pointing the application at it's path using the variable `TABLE_GROUPS_PATH`. An example of this can be found in `example_table_groups.json` in the `cmd/` directory. Both relative and absolute paths are supported.
4346

4447
This can be of special use when refactoring a database, as you can group tables together which are related, and the diagram will then illustrate the way that your logical groups remain interconnected.
4548

4649
You will need to enable the grouped tables behaviour by setting `TABLE_GROUPS` to 'true' in your environment variables.
4750

51+
4852
### Virtual Links
4953

54+
5055
Sometimes you may want to show a relationship between two tables which is not recorded in the database schema. This is supported by the application, and can be done by adding the virtual links into a .json file and pointing the application at it's path using the variable `VIRTUAL_LINKS_PATH`. An example of this can be found in `example_virtual_links.json` in the `cmd/` directory. Both relative and absolute paths are supported.
5156

5257
This feature can be of use when you have either a not very well formed database, where the logical links aren't captured in the structure (for one reason or another, many legitimate). It can also be of use when you have a database which is in the process of being refactored to support some microservices, and you still have multiple services writing to the same database.
5358

5459
You will need to enable the virtual links behaviour by setting `VIRTUAL_LINKS` to 'true' in your environment variables.
5560

61+
5662
### Minimalist Restrictions
5763

64+
5865
When diagramming a large database, you may find yourself hitting the limitations of your chosen layout engine. This is especially common when you are working with a database where the tables have lots of columns. This is reasonably common if you have a database with a low level of normalisation, intentional or otherwise.
5966

6067
You can simplify this by restricting the application to only display the columns which are used in the foreign keys of the tables. This will reduce the number of columns displayed, and will allow you to cleanly render diagrams of larger databases.
6168

6269
You can enable this by setting the environment variable `RESTRICTOR_TYPE` to 'minimal'.
6370

71+
6472
### User Permission Restrictions
6573

74+
6675
For purposes of access management, it can be of use to create a view of the tables and columns which are accessible to a particular user. This can be done by setting the environment variable `RESTRICTOR_TYPE` to 'user'.
6776

6877
You will need to also set the environment variable `DESIGNATED_USER` to the name of the user you want to restrict the diagram to. Currently this needs to be the full name of the user, including the host.
@@ -82,11 +91,10 @@ In the root directory:
8291

8392
## Roadmap
8493

85-
- Find a way to run `d2 fmt` on the output of the program, for better formatting
86-
- Extend docs to include walkthrough for using `incredible-cli` for env var management
87-
- Optionally supply configuration options via commandline
88-
- Optionally supply configuration options via .yaml config
89-
- later on possibly extend to .json format also
94+
- Expand configuration options:
95+
- Support commandline flags
96+
- Support .yaml config
97+
- Support .json config
9098
- Support other database flavours
9199
- MSSQL
92100
- PostgreSQL

0 commit comments

Comments
 (0)