一、概述
使用 sequelize-auto 逆向生成 models
软件 | 版本 |
---|---|
nodejs | v14.17.1 |
二、安装依赖
# 安装驱动
npm i mysql2 sequelize sequelize-cli -S
# 安装逆向工具 - 开发环境
npm i sequelize-auto -D
在package.json
中的script
添加命令:
"scripts": {
"models": "node sequelize-auto/auto.js"
}
二、生成模型
cd app
# echo "sequelize-auto" >> .gitignore
mkdir sequelize-auto && cd sequelize-auto
创建app/sequelize-auto/config.js
cat >> config.js <<eof
module.exports = {
host : '127.0.0.1',
user : 'root',
password : '123456',
database : 'dbname',
port: 3306,
dialect: 'mysql'
}
eof
创建app/sequelize-auto/auto.js
cat >> auto.js <<eof
const SequelizeAuto = require('sequelize-auto')
const { host, user, password, database, dialect, port } = require('./config')
const options = {
host,
dialect,
directory: 'db/models', // 指定输出 models 文件的目录
port,
additional: {
timestamps: false
}
}
const auto = new SequelizeAuto(database, user, password, options)
auto.run(err => {
if (err) throw err
})
eof
生成Model
# 将自动在 db/models 下生成每个表对应的 Model,并生成 init-models.js
npm run models
三、测试使用
-
1.根目录创建全局配置文件conf.js
cat >> conf.js <<eof module.exports = { mysql: { host: '127.0.0.1', port: '3306', db: 'res', user: 'root', pwd: '123456', dialect: 'mysql', pool: { min: 1, max: 50, acquire: 30000, idle: 10000, } } } eof
-
2.创建app/db/db.js
# 创建db.js cat >> db.js <<eof const Sequelize = require('sequelize') const initModels = require('../db/models/init-models') const { host, db, user, pwd, dialect } = require('../conf').mysql const sequelize = new Sequelize(db, user, pwd, { host, dialect: dialect, define: { timestamps: false } }) module.exports = initModels(sequelize) eof
-
3.编写测试文件
mkdir tests # 创建测试文件 cat >> db_test.js <<eof const db = require('../db/db') const myFun = async () => { ads = await db.tbl_ads.findOne({ }); console.log(ads.a_website); } myFun(); eof
-
4.执行文件
node tests/db_test.js