文档地址:https://sequelize.org/master/manual/migrations.html
–env: 默认是development
安装npm install --save sequelize sequelize-cli
npx sequelize-cli init
初始化后生成的文件夹:
/config/: 数据库的配置:环境配置
/migrations/: 数据库迁移文件,用于生成数据库表
/models/: 模型文件夹,每一个js文件会和sql表关联
/seeders/: 初始化脚本,每一个表的原始数据
npx sequelize db:create --env=环境
通过以上命令创建一个数据库
–env= : 后面跟config/config.json的环境字段,命令会根据环境配置里面的database字段值创建一个数据库
npx sequelize-cli model:generate --name User --attributes firstName:string,lastName:string,email:string
User: 模型名称(数据库表名)
attributes: 模型的属性,相当于数据库表的字段和字段类型
这会在models文件夹内创建一个user.js文件,在migrations创建一个对应的js文件(数据库迁移js文件)
npx sequelize-cli db:migrate --env=环境
通过以上命令创建一个数据库表
–env= : 后面跟config/config.json的环境字段,此命令会根据migrations文件夹下的js文件生成对应的数据库表
migrations文件夹下的js文件是根据命令 npx sequelize-cli model:generate --name user --attributes name:String
创建的,此命令会创建一个模型文件并存放在models文件夹下,
npx sequelize-cli seed:generate --name user
编辑文件的初始化数据:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.bulkInsert('Users', [
{
name: 'John',
createdAt: new Date(),
updatedAt: new Date()
}
], {});
},
down: (queryInterface, Sequelize) => {
return queryInterface.bulkDelete('Users', null, {});
}
};
将初始化数据插入数据库
npx sequelize-cli db:seed:all --env=环境
此命令会将/seeders文件夹中的初始化数据传入数据库;
–env= : 环境值,初始化数据插入该环境下的数据库表单
npx sequelize migration:create --name add-testcolumn-to-user
此命名会生成一个migrations/xxxxxxxxxxxx-add-testcolumn-to-user.js文件
配置该文件:
'use strict';
module.exports = {
up: (queryInterface, Sequelize) => {
/*** 单条插入 ***/
return queryInterface.addColumn('users', 'email', { // 向users表中添加email字段
type: Sequelize.STRING, // 字段类型
allowNull: true, // 是否允许空
});
/*** 多条插入 ***/
return Promise.all([ // Promise.all() 当数组成员全部返回后,再统一返回
queryInterface.addColumn('users', 'pidsd_1', { type: Sequelize.INTEGER }),
queryInterface.addColumn('users', 'pidsd_2', { type: Sequelize.INTEGER }),
queryInterface.addColumn('users', 'pidsd_3', { type: Sequelize.INTEGER })
])
},
down: (queryInterface, Sequelize) => {
}
};
执行 npx sequelize db:migrate
将新增的字段写入数据库表
配置相应的其他文件:
配置models/user.js文件,将新增的字段写入相应的位置
配置seeders/xxxxxxxxxxx-user.js文件,将新增的字段写入相应的位置,并写入默认值
配置相应的api文件