sequelize指引手册2020(包含自动生成models)

笔者最近使用koa2 + mySQL + ts写后台,使用sequelize作为orm语言,虽然是第二次使用,但是由于场景和设备更换,搜索引擎得到的资料分散等等问题,使用sequelize时还是发生了一系列不愉快的事情,掉了很多坑,以此作为一个完整的记录,希望之后大家都少踩一些坑。可能后期为了便于搜索,还是会把这篇博客再拆出几篇来。
注意⚠️:笔者使用的是mysql,下边一些sequelize安装配置的操作对齐的都是mysql

什么是orm,什么是sequelize,为什么使用它?

  • 首先ORM是一个缩写【O->Object,RM->Relational (关系) Mapping(映射)】,它是一种把数据库映射成对象的手段,然后我们就可以通过操作对象去达到间接操作数据库的目的。
  • 它的优势是不需要去直接接触SQL,但是遇到很复杂的查询时性能会比较差,但是一般情况使用起来还是没有问题的。
  • sequelize就是nodejs的一种orm框架,还有一些其他的框架诸如TypeORM,ORM2,目前star数量最多的就是sequelize

sequelize的初步使用

安装:
$ npm install --save sequelize
$ npm install --save mysql2
sequelize连接数据库,以及连接位置

建议把数据库的信息抽离成配置文件,修改以及多人协同开发会方便一些:

// config.ts
exports const config = {
   
​    database: {
   
​        dbName: 'management',
​        host: 'localhost',
​        port: 3306,
​        user: 'root',
​        password: '12345678'}
}

连接数据库:

// db.js
import {
    Sequelize } from 'sequelize';
import {
    config } from './config';
const {
    dbName, host, port, user, password } = config; 
export const sequelize = new Sequelize(dbName, user, password, {
   
​    dialect: 'mysql',
​    host,
​    port,
​    logging: true,
​    timezone: '+08:00',
​    define: {
   // create_time && update_time
​        timestamps: true,// delete_time
​        paranoid: true,
​        createdAt: 'created_at',  //自定义时间戳
​        updatedAt: 'updated_at',
​        deletedAt: 'deleted_at',// 把驼峰命名转换为下划线
​        underscored: true,
		pool: {
   
		   max: 5,
		   min: 0,
		   acquire: 30000,
		   idle: 10000
		 },/* scopes: {
​            bh: {
​                attributes: {
​                    exclude: ['password', 'updated_at', 'deleted_at', 'created_at']
​                }
​            },
​            iv: {
​                attributes: {
​                    exclude: ['content', 'password', 'updated_at', 'deleted_at']
​                }
​            }
​        } */}
})

注: 如果使用的是vscode,可以在插件那里找一个mysql,安装后按照指引可以在vscode直接操作数据库的数据字段等,懒癌星人必备。

sequelize-automate自动映射
  • 连接数据库后,第一步就需要建立对应的Model,很多文档教手写model,但是每个字段就要定义类型、默认值、是否为NULL、字段名等,表中字段越多就越麻烦,我还是偏好自动生成model,而sequelize-automate所作正是连接数据库,并从数据库中读出所有表,生成对应的模型文件。
  • 去年第一次使用的时候
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Sequelize-auto是一个用于自动生成Sequelize模型的命令行工具。它可以从已有的数据库结构生成对应的Sequelize模型,并且支持多种数据库类型,比如MySQL、PostgreSQL、SQLite、Microsoft SQL Server等。 虽然Sequelize-auto本身并不支持生成ER图,但我们可以通过一些工具将生成的Sequelize模型转化成ER图。下面介绍两种常用的方法: 1. 使用sequelize-auto-doc sequelize-auto-doc是一个基于Sequelize-auto的工具,它可以将生成的Sequelize模型转化成Markdown格式的文档,并且包含了ER图。具体步骤如下: 1.1 安装sequelize-auto-doc ```bash npm install -g sequelize-auto-doc ``` 1.2 生成Sequelize模型 使用sequelize-auto生成Sequelize模型。 1.3 使用sequelize-auto-doc生成文档 ```bash sequelize-auto-doc -i ./models -o ./doc ``` 其中,-i参数指定Sequelize模型文件夹路径,-o参数指定生成文档输出路径。 1.4 查看生成的文档 在输出路径下,打开index.md文件,就可以看到生成的文档和ER图了。 2. 使用sequelize-erd sequelize-erd是另一个基于Sequelize模型生成ER图的工具,它可以直接生成ER图,而不需要生成文档。具体步骤如下: 2.1 安装sequelize-erd ```bash npm install -g sequelize-erd ``` 2.2 生成Sequelize模型 使用sequelize-auto生成Sequelize模型。 2.3 使用sequelize-erd生成ER图 ```bash sequelize-erd -i ./models -o ./erd.png ``` 其中,-i参数指定Sequelize模型文件夹路径,-o参数指定生成ER图输出路径。 2.4 查看生成的ER图 在输出路径下,打开生成的erd.png文件,就可以看到生成的ER图了。 以上是两种常用的将Sequelize模型转化成ER图的方法,可以根据自己的需要选择适合的方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值