0.1.4 • Published 1 year ago

egg-sequelize-models-auto v0.1.4

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

Egg-Sequelize-Models-Auto

Automatically generate models for egg-sequelize via the command line.

NOTE: Egg-Sequelize-Models-Auto is based on Sequelize-Auto.

Install

npm install -g egg-sequelize-models-auto

Prerequisites

You will need to install the correct dialect binding globally before using egg-sequelize-models-auto.

Example for MySQL/MariaDB

npm install -g mysql2

Example for Postgres

npm install -g pg pg-hstore

Example for Sqlite3

npm install -g sqlite3

Example for MSSQL

npm install -g mssql

Usage

When installed egg-sequelize-models-auto, you could use both egg-sequelize-models-auto and sequlize-auto.

Usages are all the same, see sequelize-auto's usage

Example

egg-sequelize-models-auto -o "./models" -d test -h localhost -u root -p root -x my_password -e mysql

Produces a file/files such as ./app/model/users.js which looks like:

/* indent size: 2 */

module.exports = app => {
  const DataTypes = app.Sequelize;

  const Model = app.model.define('Users', {
    id: {
      type: DataTypes.INTEGER(11),
      allowNull: false,
      primaryKey: true,
      autoIncrement: true
    },
    username: {
      type: DataTypes.STRING,
      allowNull: true
    },
    touchedAt: {
      type: DataTypes.DATE,
      allowNull: true
    },
    aNumber: {
      type: DataTypes.INTEGER(11),
      allowNull: true
    },
    bNumber: {
      type: DataTypes.INTEGER(11),
      allowNull: true
    },
    validateTest: {
      type: DataTypes.INTEGER(11),
      allowNull: true
    },
    validateCustom: {
      type: DataTypes.STRING,
      allowNull: false
    },
    dateAllowNullTrue: {
      type: DataTypes.DATE,
      allowNull: true
    },
    defaultValueBoolean: {
      type: DataTypes.BOOLEAN,
      allowNull: true,
      defaultValue: '1'
    },
    createdAt: {
      type: DataTypes.DATE,
      allowNull: false
    },
    updatedAt: {
      type: DataTypes.DATE,
      allowNull: false
    }
  }, {
    tableName: 'Users',
    freezeTableName: true
  });

  Model.associate = function (){

  }

  return Model;
};

Configuration options

For the -c, --config option the following JSON/configuration parameters are defined by Sequelize's options flag within the constructor. For more info:

http://docs.sequelizejs.com/class/lib/sequelize.js~Sequelize.html#instance-constructor-constructor

Programmatic API

const EggSequelizeAuto = require('egg-sequelize-models-auto')
const auto = new EggSequelizeAuto'database', 'user', 'pass');

// start 
auto.run(function (err) {
  if (err) throw err;

  console.log(auto.tables); // table list
  console.log(auto.foreignKeys); // foreign key list
});

// With options:
const auto = new EggSequelizeAuto('database', 'user', 'pass', {
    host: 'localhost',
    dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
    directory: false, // prevents the program from writing to disk
    port: 'port',
    additional: {
        timestamps: false
        //...
    },
    tables: ['table1', 'table2', 'table3']
    //...
})
0.1.2

1 year ago

0.1.1

1 year ago

0.1.4

1 year ago

0.1.3

1 year ago

0.0.6

1 year ago

0.0.5

1 year ago

0.0.4

1 year ago

0.0.3

1 year ago

0.0.2

1 year ago

0.0.1

1 year ago