【发布时间】:2020-03-01 19:23:48
【问题描述】:
在 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 模型也需要将更新应用到数据库。您打算如何更新数据库?例如,如果您在模型中添加“公司”列,则您希望数据库也具有该列。您可以在数据库中手动添加它(不好的做法),或者使用迁移文件对数据库修改进行版本化,例如在此处使用
sequelize.sync() -
@DamienLeroux 在这种情况下,我可以创建一个单独的迁移来添加该列。这有效吗?
-
不,创建迁移不是强制性的,我在大型应用程序上工作了很长时间,我不使用本地方式进行迁移。您可以在没有 cli 的情况下创建模型,并通过您想要的方式对其进行管理...
-
@TharinduLucky 是的,它是有效的。
标签: node.js database model sequelize.js database-migration