Kin*_*nza 3 javascript node.js sequelize.js
我创建了一个没有偏执选项的表,我现在想要更改该表的定义以使用偏执.
我不想重新创建数据库,因为它已经在生产中.我怎么能用迁移来做到这一点?
我应该将addColumn与deletedAt一起使用,只是将偏执定义添加到模型中,还是有更好的方法?
我使用迁移添加了deletedAt字段,如下所示:
"use strict";
module.exports = {
up: function(migration, DataTypes, done) {
// add altering commands here, calling 'done' when finished
migration.addColumn(
'mytablename',
'deletedAt',
{
type: DataTypes.DATE,
allowNull: true,
validate: {
}
}
);
done();
},
down: function(migration, DataTypes, done) {
// add reverting commands here, calling 'done' when finished
migration.removeColumn('mytablename', 'deletedAt');
done();
}
};
Run Code Online (Sandbox Code Playgroud)
并添加了配置:
paranoid: true,
Run Code Online (Sandbox Code Playgroud)
到我的模特
它似乎工作.
有没有人有更好的解决方案?
小更新。
根据sequelize版本6.4.0(我当前使用的版本),迁移如下所示:
module.exports = {
up: (queryInterface, Sequelize) => {
return queryInterface.addColumn(
'TABLE_NAME',
'deletedAt',
{
allowNull: true,
type: Sequelize.DATE
})
},
down: (queryInterface, Sequelize) => {
return queryInterface.removeColumn('TABLE_NAME', 'deletedAt')
}
};
Run Code Online (Sandbox Code Playgroud)
我的意思是该done方法不是必需的。
| 归档时间: |
|
| 查看次数: |
914 次 |
| 最近记录: |