New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details →
Socket
Book a DemoSign in
Socket

egg-sequelize-auto

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

egg-sequelize-auto

Automatically generate bare sequelize models from your database, adjustment for egg

latest
Source
npmnpm
Version
0.1.1
Version published
Maintainers
1
Created
Source

Egg-Sequelize-Auto

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

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

Why Egg-Sequelize-Auto

Sequelize-Auto is a tool used to generate models for Sequelize, which based on old Sequelize version 3.x.

Now, Sequelize v4 has breaking changes, we need a latest version of Sequelize-Auto which works in Egg.

So we upgraded Sequelize-Auto to Sequelize v4 and adjusted it for egg-sequelize.

Install

npm install -g egg-sequelize-auto

Prerequisites

You will need to install the correct dialect binding globally before using egg-sequelize-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-auto, you could use both egg-sequelize-auto and sequlize-auto.

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

Example

egg-sequelize-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-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']
    //...
})

FAQs

Package last updated on 28 Sep 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts