
Security News
The Hidden Blast Radius of the Axios Compromise
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.
@puti94/sequelize-auto
Advanced tools
Automatically generate bare sequelize models from your database.
Automatically generate models for SequelizeJS via the command line.
npm install -g @puti94/sequelize-auto //or yarn global add @puti94/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 mssql
[node] sequelize-auto -h <host> -d <database> -u <user> -x [password] -p [port] --dialect [dialect] -c [/path/to/config] -o [/path/to/models] -t [tableName] -C
Options:
-h, --host IP/Hostname for the database.
-url, --url Database connect url. Such as: mysql://root:123456@localhost:3306/test
-d, --database Database name.
-u, --user Username for database.
-x, --pass Password for database.
-p, --port Port number for database.
-c, --config JSON file for Sequelize's constructor "options" flag object as defined here: https://sequelize.readthedocs.org/en/latest/api/sequelize/
-o, --output What directory to place the models.
-e, --dialect The dialect/engine that you're using: postgres, mysql, sqlite
-a, --additional Path to a json file containing model definitions (for all tables) which are to be defined within a model's configuration parameter. For more info: https://sequelize.readthedocs.org/en/latest/docs/models-definition/#configuration
-t, --tables Comma-separated names of tables to import
-T, --skip-tables Comma-separated names of tables to skip
-C, --camel Use camel case to name models and fields
-n, --no-write Prevent writing the models to disk.
-s, --schema Database schema from which to retrieve tables
-z, --typescript Output models as typescript with a definitions file.
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: 1*/
module.exports = function (sequelize, DataTypes) {
const Model = sequelize.define('sysRole', {
roleId: {
type: DataTypes.BIGINT,
allowNull: false,
primaryKey: true,
autoIncrement: true,
field: 'role_id'
},
roleName: {
type: DataTypes.STRING(100),
comment: '角色名称',
field: 'role_name'
},
remark: {
type: DataTypes.STRING(100),
comment: '备注'
},
createUserId: {
type: DataTypes.BIGINT,
comment: '创建者ID',
field: 'create_user_id'
},
createTime: {
type: DataTypes.DATE,
comment: '创建时间',
field: 'create_time'
},
deptId: {
type: DataTypes.BIGINT,
comment: '部门ID',
field: 'dept_id'
}
}, {
tableName: 'sys_role',
comment: '角色'
});
Model.associate = function (models) {
// Model.hasMany(models.xx, {sourceKey: "xx", foreignKey: "xx"});
};
return Model;
};
Which makes it easy for you to simply Sequelize.import it.
For the -c, --config option the following JSON/configuration parameters are defined by Sequelize's options flag within the constructor. For more info:
https://sequelize.readthedocs.org/en/latest/api/sequelize/
const {AutoSequelize} = require('@puti94/sequelize-auto')
const auto = new AutoSequelize('database', 'user', 'pass');
auto.prepare().then(()=> {
console.log(auto.tables); // table list
console.log(auto.foreignKeys); // foreign key list
// 可以使用这个方法自动调用 注入 models
auto.initModels();
auto.outputFiles().then(()=>console.log('success'))
});
//With options:
const auto = new SequelizeAuto('database', 'user', 'pass', {
host: 'localhost',
dialect: 'mysql'|'mariadb'|'sqlite'|'postgres'|'mssql',
directory: false, // prevents the program from writing to disk
port: 'port',
additional: {
timestamps: false
//...
},
tables: ['table1', 'table2', 'table3']
//...
})
//with url:
const {Sequelize} = require('sequelize');
const auto = new AutoSequelize(new Sequelize("mysql://root:123456@localhost:3306/test"),/* options */);
You must setup a database called sequelize_auto_test first, edit the test/config.js file accordingly, and then enter in any of the following:
# for all
npm run test
# mysql only
npm run test-mysql
# postgres only
npm run test-postgres
# postgres native only
npm run test-postgres-native
# sqlite only
npm run test-sqlite
FAQs
Automatically generate bare sequelize models from your database.
We found that @puti94/sequelize-auto demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
The Axios compromise shows how time-dependent dependency resolution makes exposure harder to detect and contain.

Research
A supply chain attack on Axios introduced a malicious dependency, plain-crypto-js@4.2.1, published minutes earlier and absent from the project’s GitHub releases.

Research
Malicious versions of the Telnyx Python SDK on PyPI delivered credential-stealing malware via a multi-stage supply chain attack.