Skip to content

Latest commit

 

History

History
124 lines (86 loc) · 2.78 KB

README.md

File metadata and controls

124 lines (86 loc) · 2.78 KB

ember-data-erd

Small library to generate entity relationship models using the Ember data models of the app as source.

This project is inspired in rails-erd (https://github.com/voormedia/rails-erd). But needs more work to get to that point and support new Ember applications.

Installation

ember install ember-data-erd

Compatibility

The library has basic supports for the following ways to define models:

  export default Model.extend({
    name: attr()
  }
  import Model, { attr, hasMany } from '@ember-data/model';

  export default class ClientModel extends Model {
    @attr name;

    @hasMany pets;
  }
  import Model, { attr, hasMany } from '@ember-data/model';

  export default class ClientModel extends Model {
    @attr name;

    @hasMany('pet') pets;
  }
  import Model, { attr, hasMany } from '@ember-data/model';

  export default class ClientModel extends Model {
    @attr name;

    @hasMany('pet')
    pets;
  }

This is still in a very early stage, so, errors parsing the source code might happen. If you find one, please report it as an issue in the repo.

Thanks!

Usage

Run the following command in the root of the project.

  ember erd:generate

By default the library is going to generate a PNG image in a diagrams folder. If the diagrams folder is not created, it will be created in the root folder of the project.

In order to modify the behaviour of the library it is possible to use a configuration file. The configuration file should be called:

.ember-data-erd.js

Create the file and put it in the root directory of the project.

The supported options are:

Example config file:

  module.exports = {
    include: [
      'board',
      'organisation',
      'link',
      'reward',
      'user',
      'userGroup'
    ],
    outputFormat: 'pdf',
    graphviz: {
      concentrate: false // https://graphviz.org/doc/info/attrs.html#d:concentrate
    }
  }

Contributing

See the Contributing guide for details.

License

This project is licensed under the MIT License.