Sequelize是一个广泛使用的 ORM 框架,它支持 MySQL、PostgreSQL、SQLite 和 MSSQL 等多个数据源。
1. 安装:
npm install --save egg-sequelize;
2. 在 config/plugin.js
中引入 egg-sequelize 插件
3. 在 config/config.default.js
中编写 sequelize 配置,(此处查看其它配置GitHub - eggjs/egg-sequelize: Sequelize for Egg.js)
4. 初始化数据库和 Migrations
开始设计 users
表,它有如下的数据结构:
sequelize 提供了 sequelize-cli
工具来实现 Migrations
,我们也可以在 egg 项目中引入 sequelize-cli。
安装 sequelize-cli:
npm install --save-dev sequelize-cli
在 egg 项目中,我们希望将所有数据库 Migrations 相关的内容都放在 database
目录下,所以我们在项目根目录下新建一个 .sequelizerc
配置文件:
'use strict';
const path = require('path');
module.exports = {
"config": path.join(__dirname, 'database/config.json'),
"migrations-path": path.join(__dirname, 'database/migrations'),
"seeders-path": path.join(__dirname, 'database/seeders'),
"models-path": path.join(__dirname, 'app/model'),
};
5. 初始化 Migrations 配置文件和目录
npx sequelize init:config
npx sequelize init:migrations
执行完后会生成 database/config.json
文件和 database/migrations
目录,修改一下 database/config.json
中的内容,将其改成使用的数据库配置。
此时 sequelize-cli 和相关的配置也都初始化好了,可以开始编写项目的第一个 Migration 文件来创建我们的一个 users
表了。
npx sequelize migration:generate --name=init-users
执行完后会在 database/migrations
目录下生成一个 migration 文件(${timestamp}-init-users.js
),修改它来处理初始化 users
表:
6. 执行 migrate 进行数据库变更
# 升级数据库
npx sequelize db:migrate
7. 编写代码
现在可以开始编写代码实现业务逻辑了。首先在 app/model/
目录下编写 user
这个 Model:
这个 Model 就可以在 Controller 和 Service 中通过 app.model.User
或者 ctx.model.User
访问到了。其余model接口访问Getting Started | Sequelize
特别注意:框架表名自动复数,加上会使用snake_case会使列名改变。