在Sequelize中,当我们使用以下命令创建模型时,
sequelize model:generate --name Company --attributes name:string, desc:text
还正在创建迁移文件。通过添加以下代码,我们可以使模型与数据库同步。
models.sequelize.sync().then(() => {
console.log("DB Synced");
}).catch((error) => {
console.log(error);
});
因此,当列名或其他内容发生更改时,它们将与数据库同步。
所以,我们真的需要进行迁移吗?在开发或生产的任何时候?
如果我弄错了,请纠正我。
我强烈建议使用显式迁移,并指向表以将应用的迁移和种子存储在sequelize配置中,以防您在不同的生产环境中拥有不同版本的数据库(即使您只是计划不同的生产部署)。如果您在较旧的生产数据库上运行带有某些模型更改的新版本应用程序,则通过执行sync方法,您会意外地更改此生产数据库。此外,您无法轻易撤消这些更改,因为您对当前应用程序中的模型与生产数据库中的表之间的差异一无所知。