Sequelize 同步与迁移

Posted

技术标签:

【中文标题】Sequelize 同步与迁移【英文标题】:Sequelize Sync vs Migrations 【发布时间】:2017-05-26 12:45:58 【问题描述】:

我正在学习 Sequelize,我想了解有关同步与迁移的一些说明。

我知道同步会根据我的模型架构创建缺失的表,但我也读到同步是为了初始化数据库,而迁移是为了生产。

如果是这种情况,express-example 将显示calling sync from bin/www。那是不应该在生产中使用的东西吗?

作为此的扩展,如果我不在生产中使用同步,您如何应用模型关联?我需要手动将它们添加到迁移中吗?

本质上,我要求解释这两个概念是如何协同工作的。

谢谢

【问题讨论】:

【参考方案1】:

我建议在开发和生产中使用 sequelize 迁移,以便您完全适应可以提供安全结果的过程,并且无需强制执行 sequelize 同步只会创建具有指定架构的新表,而这些表不存在于数据库中,它不会反映现有表模式的变化。 Sequelize 迁移将帮助您以系统和增量的方式更新数据库。

有关更多信息,请参阅此页面。

Sequelize.js: how to use migrations and sync

http://corpus.hubwiz.com/2/node.js/21105748.html

【讨论】:

感谢您的回答。那篇文章是一个很好的资源。如果不调用同步,我是否可以假设将underscored: trueonDelete: 'cascade' 添加到模型的 JS 定义(不是迁移)中不会有任何影响? 刚刚发现您的链接是这个 SO 问题的抓取版本:***.com/questions/21105748/… SO 版本包含更多信息,因此可能会将您的链接更改为 SO。

以上是关于Sequelize 同步与迁移的主要内容,如果未能解决你的问题,请参考以下文章

即使 paranoid 设置为 true,Sequelize.js 仍会删除表行

Sequelize - 模型和迁移

了解 Sequelize 数据库迁移和种子

如何在 Docker 中运行 Sequelize 迁移

Sequelize 迁移中的关联

在 Sequelize 迁移中将 defaultValue 设置为今天的日期