Sequelize 中模型和迁移定义之间的主要区别是什么?

use*_*427 6 javascript node.js sequelize.js umzug

一些 SQL 数据库的 Sequelize 用户sync({ force: true })在早期经常使用,然后切换到迁移。我很困惑,因为迁移和模型似乎具有相似的语法,但也有一些似乎没有被强烈强调的差异。

一些观察(可能是错误的):

  • 两者中的选项对象不同:options.indexes模型中的对象在迁移中不起作用(但在模型中起作用)
  • 自定义索引名称 usingunique: 'somename'不适用于迁移字段属性(但适用于模型);但unique: true两者都适用
  • 需要显式创建外键 -references需要在迁移中设置a (但在模型中,hasMany/belongsTo 会自动生成外键字段和外键引用)
  • idcreatedAt并且updatedAt必须在迁移中手动创建,而不是模型

最后两个是有道理的,因为它描述了迁移责任(设置 db 架构)与模型 - 但是迁移支持什么/它如何工作对于类似的项目似乎不同,并且该sync选项加​​剧了我的困惑。

一些问题:

  • Sequelize 中的迁移和模型之间需要记住的主要区别是什么(不是两者之间的一般哲学)?在什么型号的选项(使用时sync选择)的迁移工作?
  • 在从sync离散迁移切换到迁移时,其他人是否只是将模型文件复制到迁移中?您是否删除了仅适用于模型的部分无关信息?只适用于迁移?