Sequelize
本文档介绍如何在 Midway 中使用 Sequelize。
提示
当前模块从 v3.4.0 开始已经重构,历史写法兼容,如果查询历史文档,请参考 这里。
相关信息:
描述 | |
---|---|
可用于标准项目 | ✅ |
可用于 Serverless | ✅ |
可用于一体化 | ✅ |
包含独立主框架 | ❌ |
包含独立日志 | ❌ |
和老写法的区别
如果想使用新版本的用法,请参考下面的流程,将老代码进行修改,新老代码不能混用。
升级方法:
- 1、请在业务依赖中显式添加
sequelize
和sequelize-typescript
- 2、不再使用
BaseTable
装饰器,而直接使用sequelize-typescript
包导出的Table
装饰器 - 3、在
src/config.default
的sequelize
部分配置调整,参考下面的数据源配置部分- 3.1 修改为数据源的形式
sequelize.dataSource
- 3.2 将实体模型在数据源的
entities
字段中声明
- 3.1 修改为数据源的形式
安装依赖
$ npm i @midwayjs/sequelize@3 sequelize sequelize-typescript --save
或者在 package.json
中增加如下依赖后,重新安装。
{
"dependencies": {
"@midwayjs/sequelize": "^3.0.0",
"sequelize": "^6.21.3",
"sequelize-typescript": "^2.1.0"
// ...
},
"devDependencies": {
// ...
}
}
安装数据库 Driver
常用数据库驱动如下,选择你对应连接的数据库类型安装:
# for MySQL or MariaDB,也可以使用 mysql2 替代
npm install mysql --save
npm install mysql2 --save
# for PostgreSQL or CockroachDB
npm install pg --save
# for SQLite
npm install sqlite3 --save
# for Microsoft SQL Server
npm install mssql --save
# for sql.js
npm install sql.js --save
# for Oracle
npm install oracledb --save
# for MongoDB(experimental)
npm install mongodb --save
下面的文档,我们将以 mysql2
作为示例。
Directory structure
一个基础的参考目录结构如下。
MyProject
├── src
│ ├── config
│ │ └── config.default.ts
│ ├── entity
│ │ └── person.entity.ts
│ ├── configuration.ts
│ └── service
├── .gitignore
├── package.json
├── README.md
└── tsconfig.json
启用组件
在 src/configuration.ts
文件中启用组件。
import { Configuration, ILifeCycle } from '@midwayjs/core';
import { join } from 'path';
import * as sequelize from '@midwayjs/sequelize';
@Configuration({
imports: [
// ...
sequelize,
],
importConfigs: [join(__dirname, './config')],
})
export class MainConfiguration implements ILifeCycle {
// ...
}