Skip to content
Automatically generate bare sequelize models from your database.
Branch: master
Clone or download
Pull request Compare This branch is 215 commits behind sequelize:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.


Build Status Dependency Status Code Climate

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 tedious


sequelize-auto -h <host> -d <database> -u <user> -x [password] -p [port]  --dialect [dialect] -c [/path/to/config] -o [/path/to/models]

  -h, --host      IP/Hostname for the database.                                      [required]
  -d, --database  Database name.                                                     [required]
  -u, --user      Username for database.                                             [required]
  -x, --pass      Password for database.
  -p, --port      Port number for database.
  -c, --config    JSON file for sending additional options to the Sequelize object.
  -o, --output    What directory to place the models.
  -e, --dialect   The dialect/engine that you're using: postgres, mysql, sqlite


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:


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

# for all
npm run test-buster

# mysql only
npm run test-buster-mysql

# postgres only
npm run test-buster-postgres
You can’t perform that action at this time.