An autoloader for Sequelize, inspired by PSR-0 and PSR-4.
npm install --save sequelize-autoload
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:
db.load()
reads config, but does not load table(s) immediately.- Tables are loaded when they are called.
- Only uninitialized table(s) will be loaded, otherwise existing table instance(s) will be returned.
db.load()
can be called more than once, which will reload the config and clear all existing table instance(s).
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 | Sequelize ORM dialect, see here. | |
server.host |
String | Database host. | |
server.database |
String | Database name. | |
server.username |
String | Database connection username. | |
server.password |
String | Database connection password. | |
server.define |
Object | Sequelize global define, see here. | |
models.root |
String | Path where generated scripts (by sequelize-auto ) located. |
Notes:
- If
models.root
is a relative path, it describes the path related to the config JSON file.
MIT