Skip to content
An autoloader for Sequelize, inspired by PSR-0 and PSR-4.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
images
.gitignore
LICENSE
README.md
index.js
package.json
sequelize-autoload.sublime-project

README.md

An autoloader for Sequelize, inspired by PSR-0 and PSR-4.

Installation

npm install --save sequelize-autoload

Usage

const db = require('sequelize-autoload');
db.load('/path/to/config');

To generate sequelize models files:

See sequelize-auto package.

To make a config file:

See Config File section.

To get a Sequelize table instance:

db.models.model_name

Notes:

  1. db.load() reads config, but does not load table(s) immediately.
  2. Tables are loaded when they are called.
  3. Only uninitialized table(s) will be loaded, otherwise existing table instance(s) will be returned.
  4. db.load() can be called more than once, which will reload the config and clear all existing table instance(s).

Config File

Generally, the config file is a JSON separate from your main JS script. It contains database, tables and Sequelize-specific configurations. It looks like:

{
    "server": {
        "dialect": "mysql",
        "host": "localhost",
        "database": "test",
        "username": "username",
        "password": "password",
        "define": {}
    },
    "models": {
        "root": "../models"
    }
}
Field Name Type Optional Description
server.dialect String no Sequelize ORM dialect, see here.
server.host String no Database host.
server.database String no Database name.
server.username String no Database connection username.
server.password String no Database connection password.
server.define Object yes Sequelize global define, see here.
models.root String yes Path where generated scripts (by sequelize-auto) located.

Notes:

  1. If models.root is a relative path, it describes the path related to the config JSON file.

License

MIT

You can’t perform that action at this time.