Sequelize:更改生产上的模型模式

我们使用的是orm sequelize.js,并定义了如下模型:

module.exports=函数(续集,数据类型){
var Source=sequelize.define('Source'{
姓名:{
类型:DataTypes.STRING,
allowNull:错,
独一无二:真的
}
}, {
偏执狂:是的
});
返回源;
};

这将部署到生产环境,并使用sequelize.sync同步到数据库。下一步,我们添加一个参数:

module.exports=函数(续集,数据类型){
var Source=sequelize.define('Source'{
姓名:{
类型:DataTypes.STRING,
allowNull:错,
独一无二:真的
}, 
地点:{
类型:DataTypes.STRING
}
}, {
偏执狂:是的
});
返回源;
};

但是,在部署到生产环境时,sequelize.sync不会添加此新参数。这是因为sync执行以下操作:

创建不存在的表

如果表存在,则不会实际更新模式。这在他们的文件中有所说明

唯一的选择似乎是{force:true},但是这对于生产数据库来说是不合适的

有人知道如何在需要更改时正确更新模式吗

您要实施Sequelize迁移:

http://docs.sequelizejs.com/manual/tutorial/migrations.html

这将使您能够在已知状态之间转换开发人员、暂存和生产数据库

发表评论