6

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

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

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

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

一些问题:

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

0 回答 0