数据库同步
当开始一个新的项目时,你还不会有一个数据库结构,并且使用Sequelize你也不需要它. 只需指定你的模型结构,并让库完成其余操作. 目前支持的是创建和删除表:
// 创建表:
Project.sync()
Task.sync()
// 强制创建!
Project.sync({force: true}) // 这将先丢弃表,然后重新创建它
// 删除表:
Project.drop()
Task.drop()
// 事件处理:
Project.[sync|drop]().then(() => {
// 好吧...一切都很好!
}).catch(error => {
// oooh,你输入了错误的数据库凭据?
})
因为同步和删除所有的表可能要写很多行,你也可以让Sequelize来为做这些:
// 同步所有尚未在数据库中的模型
sequelize.sync()
// 强制同步所有模型
sequelize.sync({force: true})
// 删除所有表
sequelize.drop()
// 广播处理:
sequelize.[sync|drop]().then(() => {
// woot woot
}).catch(error => {
// whooops
})
因为.sync({ force: true })
是具有破坏性的操作,可以使用match
参数作为附加的安全检查.
match
参数可以通知Sequelize,以便在同步之前匹配正则表达式与数据库名称 - 在测试中使用force:true
但不使用实时代码的情况下的安全检查.
// 只有当数据库名称以'_test'结尾时,才会运行.sync()
sequelize.sync({ force: true, match: /_test$/ });