Skip to content
This repository has been archived by the owner on Dec 27, 2021. It is now read-only.

Xancy/sequelize-autoload

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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