我刚刚开始使用 Sequelize 和 Sequelize CLI
由于是开发时间,所以经常会添加和删除列。向现有模型添加新列的最佳方法是什么?
例如,我想将一个新列 ‘ 完成’ 到 Todo 模型。我将此列添加到 models/todo.js。下一步是什么?
我试过 sequelize db:migrate
不工作: “没有执行迁移,数据库模式已经是最新的。”
原文由 Gijo Varghese 发布,翻译遵循 CC BY-SA 4.0 许可协议
我刚刚开始使用 Sequelize 和 Sequelize CLI
由于是开发时间,所以经常会添加和删除列。向现有模型添加新列的最佳方法是什么?
例如,我想将一个新列 ‘ 完成’ 到 Todo 模型。我将此列添加到 models/todo.js。下一步是什么?
我试过 sequelize db:migrate
不工作: “没有执行迁移,数据库模式已经是最新的。”
原文由 Gijo Varghese 发布,翻译遵循 CC BY-SA 4.0 许可协议
您仍然可以使用带有两个选项的对象参数的同步函数,当然一个是您不添加值的默认选项,另一个是您添加强制或更改属性的实例。所以在这种情况下你想使用 UserModel.sync({ force: true })
:这会创建表,如果它已经存在则首先删除它
UserModel.sync({ alter: true })
这将检查数据库中表的当前状态(它有哪些列,它们的数据类型是什么等),然后在表中执行必要的更改以使其与模式匹配……你可以使用这个当您使用模型实例有关更新以及表和模型的更多信息时,请在 此处 查看有关更多功能的文档
原文由 BrianDev 发布,翻译遵循 CC BY-SA 4.0 许可协议
5 回答4.8k 阅读✓ 已解决
4 回答2.4k 阅读✓ 已解决
2 回答1.7k 阅读✓ 已解决
5 回答1.9k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答2k 阅读
1 回答3.2k 阅读
如果您使用的是 sequelize-cli ,则需要先创建迁移。这只是一个文件,它告诉引擎如何更新数据库以及在出现问题时如何回滚更改。您应该始终将此文件提交到您的存储库
迁移文件如下所示:
然后,运行它: