Javascript Sequelize js,迁移中如何更改列类型
如何在迁移中更改列类型。在我的迁移1中,有一个迁移添加了列。现在,我想将列类型从字符串更改为文本,我应该创建一个类似于changeColumn的新迁移文件,还是可以创建与迁移1相同的新迁移文件,但我只需要将类型更改为文本?多谢各位 #迁移1Javascript Sequelize js,迁移中如何更改列类型,javascript,node.js,sequelize.js,feathers-sequelize,Javascript,Node.js,Sequelize.js,Feathers Sequelize,如何在迁移中更改列类型。在我的迁移1中,有一个迁移添加了列。现在,我想将列类型从字符串更改为文本,我应该创建一个类似于changeColumn的新迁移文件,还是可以创建与迁移1相同的新迁移文件,但我只需要将类型更改为文本?多谢各位 #迁移1 await queryInterface.addColumn(SampleModel.tableName, 'name', { type: Sequelize.STRING, allowNull: true, }, { transaction,
await queryInterface.addColumn(SampleModel.tableName, 'name', {
type: Sequelize.STRING,
allowNull: true,
}, {
transaction,
});
迁移2(创建新迁移会像这样工作吗?仍然是addColumn,但我将类型更改为text)
您可以在迁移2中使用
changeColumn
而不是addColumn
声明来自:
可以更改默认值、允许为null或数据类型
您可以使用
changeColumn
而不是addColumn
,因为addColumn
将在表中添加新列。
您可以这样定义迁移:
迁移文件
如果这不符合你的要求,请也投票!!啊,所以迁移的下一步是type:Sequelize.STRING,如果要撤消迁移,它会将您的类型设置为较旧的类型,即
STRING
。如果列已经存在,我还需要调用if(!Object.keys(tableDef).includes('name'){?
await queryInterface.addColumn(SampleModel.tableName, 'name', {
type: Sequelize.TEXT,
allowNull: true,
}, {
transaction,
});
module.exports = {
up: (queryInterface, Sequelize) => {
return Promise.all([
queryInterface.changeColumn('your table name ', 'name', {
type: Sequelize.TEXT,
allowNull: true,
}, {
transaction,
})
])
},
down: (queryInterface, Sequelize) => {
return Promise.all([
queryInterface.changeColumn('your table name ', 'name', {
type: Sequelize.STRING,
allowNull: true,
}, {
transaction,
})
])
}
};