博主只是将官方文档的步骤给进行实现一下:
安装 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
根据配置文件创建数据库
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
- 在执行的时候发现报错了,因为博主已经将 .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