Javascript Sequelize中模型和迁移定义之间的主要区别是什么?
SQL数据库的一些Sequelize用户通常在早期使用Javascript Sequelize中模型和迁移定义之间的主要区别是什么?,javascript,node.js,sequelize.js,umzug,Javascript,Node.js,Sequelize.js,Umzug,SQL数据库的一些Sequelize用户通常在早期使用sync({force:true}),然后切换到迁移。我很困惑,因为迁移和模型似乎有着相似的语法,但也有一些差异似乎没有被强烈强调 一些观察结果(可能是错误的): 两者中的选项对象不同:options.index模型中的对象在迁移中不起作用(但在模型中起作用) 使用unique:“somename”的自定义索引名在迁移字段属性中不起作用(但在模型中起作用);但是unique:true在这两种情况下都有效 需要显式创建外键-并且需要在迁移中设
sync({force:true})
,然后切换到迁移。我很困惑,因为迁移和模型似乎有着相似的语法,但也有一些差异似乎没有被强烈强调
一些观察结果(可能是错误的):
- 两者中的选项对象不同:
模型中的对象在迁移中不起作用(但在模型中起作用)options.index
- 使用
的自定义索引名在迁移字段属性中不起作用(但在模型中起作用);但是unique:“somename”
在这两种情况下都有效unique:true
- 需要显式创建外键-并且需要在迁移中设置
(但在模型中,hasMany/belongs会自动生成外键字段和外键引用)引用
、id
和createdAt
必须在迁移中手动创建,但不能在模型中创建updatedAt
sync
选项加剧了我的困惑
一些问题:
- 在Sequelize中,迁移和模型之间需要记住的主要区别是什么(而不是两者之间的一般原理)?模型中的哪些选项(使用
选项时)在迁移中起作用sync
- 当从
切换到离散迁移时,其他人是否只是将模型文件复制到迁移中?你是否删除了一些只在模型中有效的无关信息?仅适用于迁移sync