Egg 官方文档:​​https://eggjs.org/zh-cn/tutorials/sequelize.html​

博主只是将官方文档的步骤给进行实现一下:

Egg-TS-Sequelize-Cli的使用_json

安装 sequelize-cli

npm install --save-dev sequelize-cli

编写 .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'),
};

初始化配置文件

npx sequelize init:config

Egg-TS-Sequelize-Cli的使用_json_02

根据配置文件创建数据库

set NODE_ENV=development
npx sequelize db:create

创建迁移文件

npx sequelize migration:generate --name=users

修改迁移文件为 TS 语法

将创建的迁移文件的 JS 后缀改为 ​​.ts​​ 结尾的:

'use strict';
import {QueryInterface} from 'sequelize';

module.exports = {
// 在执行数据库升级时调用的函数,创建 users 表
up: async (queryInterface:QueryInterface, Sequelize) => {
const { INTEGER, DATE, STRING } = Sequelize;
await queryInterface.createTable('users', {
id: { type: INTEGER, primaryKey: true, autoIncrement: true },
name: STRING(30),
age: INTEGER,
created_at: DATE,
updated_at: DATE,
});
},
// 在执行数据库降级时调用的函数,删除 users 表
down: async (queryInterface:QueryInterface) => {
await queryInterface.dropTable('users');
},
};
  • 执行 migrate 进行数据库变更
npx sequelize db:migrate

Egg-TS-Sequelize-Cli的使用_json_03

  • 在执行的时候发现报错了,因为博主已经将 .js 后缀的改为了 .ts 结尾的了,所以说按照官方文档来这一步是行不通的,所以还需要编写如下的几个步骤才可以执行迁移文件
  • 在​​package.json​​ 中新增执行 TS 迁移文件脚本
"sequelize-cli-ts": "node -r ts-node/register ./node_modules/sequelize-cli/lib/sequelize"

执行迁移文件

npm run sequelize-cli-ts db:migrate

Egg-TS-Sequelize-Cli的使用_TS+Egg+Vue管理系统_04

Egg-TS-Sequelize-Cli的使用_TS+Egg+Vue管理系统_05