使用sequelize的时候如何在数据库的表中添加字段
- 在当前表的models中添加要添加的字段相关数据
- 在项目中的migrations中添加添加字段的文件
在后端运行:
npx sequelize-cli migration:generate --name migration-skeleton
(migration-skeleton 是换成自己为这个文件起的名字)
- 在migrations中生成了新的js文件之后,可以根据自己项目的代码方式替换里面自动生成的内容(这是我自己项目中的内容格式)
'use strict';
module.exports = {
async up(queryInterface, Sequelize) {
const fields = await queryInterface.describeTable('DailyReport'); // 放到这个表中
const t = await queryInterface.sequelize.transaction();
try {
if (!fields.hasOwnProperty('purchaseAmountWxadsOrigin')) {
await queryInterface.addColumn('DailyReport', 'purchaseAmountWxadsOrigin', {
type: Sequelize.DataTypes.DECIMAL(10, 2), // 字段数据类型
allowNull: false, // 不允许为空
defaultValue: '0.00', // 默认,没有为0
comment: '广点通花费', // 字段描述
after: 'purchaseAmountWxads', // 字段放到这个字段之后
}, { transaction: t });
}
await t.commit();
} catch (err) {
throw err;
}
},
async down(queryInterface) {
const t = await queryInterface.sequelize.transaction();
try {
await queryInterface.removeColumn('DailyReport', 'purchaseAmountWxadsOrigin', { transaction: t });
await t.commit();
} catch (err) {
await t.rollback();
throw err;
}
}
};
- 之后就可以运行将字段自动添加到数据库中的代码
npx sequelize-cli db:migrate
其实是因为我自己总是忘记,所以好记性不如烂笔头啦~
还有更多sequelize关于migrations的一些方法,我也没记住,可以看sequelize的migrations