Neverending Puppy Marathon


    0.4.38 • Public • Published


    FORKED AND ONLY FOR MY OWN USE.sequelize-auto can't generate indexes and I found in pull-request logoran/sequelize-auto in which BTREE and FULLTEXT can be found but UNIQUE cannot. In the repo mysql unique key could be generated.

    npm install -g sequelize-auto-zy

    Greenkeeper badge

    Build Status Build status Dependency Status Code Climate Test Coverage

    Automatically generate models for SequelizeJS via the command line.


    npm install -g sequelize-auto


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

    Example for MySQL/MariaDB

    npm install -g mysql

    Example for Postgres

    npm install -g pg pg-hstore

    Example for Sqlite3

    npm install -g sqlite

    Example for MSSQL

    npm install -g mssql


    [node] sequelize-auto -h <host> -d <database> -u <user> -x [password] -p [port]  --dialect [dialect] -c [/path/to/config] -o [/path/to/models] -t [tableName] -C
      -h, --host        IP/Hostname for the database.   [required]
      -d, --database    Database name.                  [required]
      -u, --user        Username for database.
      -x, --pass        Password for database.
      -p, --port        Port number for database.
      -c, --config      JSON file for Sequelize's constructor "options" flag object as defined here:
      -o, --output      What directory to place the models.
      -e, --dialect     The dialect/engine that you're using: postgres, mysql, sqlite
      -a, --additional  Path to a json file containing model definitions (for all tables) which are to be defined within a model's configuration parameter. For more info:
      -t, --tables      Comma-separated names of tables to import
      -T, --skip-tables Comma-separated names of tables to skip
      -C, --camel       Use camel case to name models and fields
      -n, --no-write    Prevent writing the models to disk.
      -s, --schema      Database schema from which to retrieve tables
      -z, --typescript  Output models as typescript with a definitions file.


    sequelize-auto -o "./models" -d sequelize_auto_test -h localhost -u my_username -p 5432 -x my_password -e postgres

    Produces a file/files such as ./models/Users.js which looks like:

    /* jshint indent: 2 */
    module.exports = function(sequelize, DataTypes) {
      return sequelize.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

    Which makes it easy for you to simply Sequelize.import it.

    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:

    Programmatic API

    var SequelizeAuto = require('sequelize-auto')
    var auto = new SequelizeAuto('database', 'user', 'pass');
 (err) {
      if (err) throw err;
      console.log(auto.tables); // table list
      console.log(auto.foreignKeys); // foreign key list
    With options:
    var auto = new SequelizeAuto('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']


    Add -z to cli options or typescript: true to programmatic options. Model usage in a ts file:

    // All models, can put in or extend to a db object at server init
    import * as dbTables from './models/db.tables';
    const tables = dbTables.getModels(sequelize); //:dbTables.ITable
    // Single models
    import * as dbDef from './models/db.d';
    const devices:dbDef.DeviceModel = sequelize.import('./models/Device');


    You must setup a database called sequelize_auto_test first, edit the test/config.js file accordingly, and then enter in any of the following:

    # for all
    npm run test
    # mysql only
    npm run test-mysql
    # postgres only
    npm run test-postgres
    # postgres native only
    npm run test-postgres-native
    # sqlite only
    npm run test-sqlite

    Projects Using Sequelize-Auto


    npm i sequelize-auto-zy

    DownloadsWeekly Downloads






    Unpacked Size

    258 kB

    Total Files


    Last publish


    • vanceeasleaf