一些Sequelize SQL数据库用户在早期经常使用 sync({ force: true }) ,然后切换到迁移 . 我似乎强调了这一点 .

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

  • 两者中的选项对象不同:模型中的 options.indexes 对象在迁移中不起作用(但在模型中有效)

  • 使用 unique: 'somename' 的自定义索引名称在迁移字段属性中不起作用(但在模型中有效);但是 unique: true 在两者中都有效
    需要显式创建

  • 外键 - 并且需要在迁移中设置 references (但在模型中,hasMany / belongsTo会自动生成外键字段和外键引用)
    必须在迁移中手动创建

  • idcreatedAtupdatedAt ,而不是模型

最后两个是有意义的,因为它描绘了迁移职责(设置数据库模式)与模型 - 但迁移支持/它的工作方式对于类似的项目似乎有所不同, sync 选项加剧了我的困惑 .

一些问题:

  • 迁移和模型之间要记住的主要区别是什么 in Sequelize (不是两者之间的一般原理)?模型中的哪些选项(使用 sync 选项时)在迁移中有效吗?

  • 当从 sync 切换到离散迁移时,其他人是否只是将模型文件复制到迁移中?你是否删除了仅在模型中有效的部分无关信息?仅适用于迁移?