May 15, 2019 · Web JS

Setup SequelizeJS config & basic operations

Setup SequelizeJS in easy & modern way

yarn add sequelize sequelize-cli dotenv

package.json
add the following to package.json

"scripts": {
  "sequelize": "sequelize"
}

./config/database.js
add the following script to ./config/database.js

require("dotenv").config();

module.exports = {
  development: {
    database: process.env.DB_NAME,
    username: process.env.DB_USER,
    password: process.env.DB_PASS,
    port: process.env.DB_PORT,
    host: process.env.DB_HOST || "localhost",
    dialect: "mysql",
    pool: {
      max: 5,
      min: 0,
      idle: 10000
    },
    dialectOptions: {
      // useUTC: false, //for reading from database
      dateStrings: true,
      typeCast: true,
      timezone: "+08:00"
    },
    timezone: "+08:00",
    logging: (msg) => console.log(msg)
  },

  testing: {
    database: process.env.UNIT_TEST_DB_NAME,
    username: process.env.UNIT_TEST_DB_USER,
    password: process.env.UNIT_TEST_DB_PASS,
    port: process.env.UNIT_TEST_DB_PORT,
    host: process.env.UNIT_TEST_DB_HOST || "localhost",
    dialect: "mysql",
    pool: {
      max: 5,
      min: 0,
      idle: 10000
    },
    dialectOptions: {
      // useUTC: false, //for reading from database
      dateStrings: true,
      typeCast: true,
      timezone: "+08:00"
    },
    timezone: "+08:00",
    logging: false
  },

  production: {
    database: process.env.DB_NAME,
    username: process.env.DB_USER,
    password: process.env.DB_PASS,
    port: process.env.DB_PORT,
    host: process.env.DB_HOST || "localhost",
    dialect: "mysql",
    pool: {
      max: 5,
      min: 0,
      idle: 10000
    },
    dialectOptions: {
      // useUTC: false, //for reading from database
      dateStrings: true,
      typeCast: true,
      timezone: "+08:00"
    },
    timezone: "+08:00",
    logging: false
  }
};

./.sequelizerc
add the following script to ./.sequelizerc

const path = require('path')

module.exports = {
    'config': path.resolve('./config','database.js'),
    'migrations-path': path.resolve('./','migrations'),
    'models-path': path.resolve('./','models'),
    'seeders-path': path.resolve('./','seeders'),
}

./index.js or your init endpoint for using SequelizeDB
init your sequelize instance code to the following

const env = process.env.NODE_ENV || "development";
const config = require("../config/database");
let sequelize = new Sequelize(config[env]);

Done.


SequelizeJS Basic operations

add new fields / models

yarn sequelize model:generate --name MODELNAME --attributes fieldNameA:integer,fieldNameB:integer

add new database seeds

yarn sequelize seed:generate --name seed-model-name

rollin migrations

yarn sequelize db:migrate

seed databases

yarn sequelize db:seed:all