我是NodeJs的新手,但我习惯使用PHP与ORM合作 . 每次我部署网站时,我都会同步到数据库 . 前提原则:架构:在Symfony中更新--force .
但是,在Sequelize的文档中,他们给出了在每个查询之前进行同步的示例 . 这是一个好习惯吗?
我刚做了一个测试,可以在没有同步的情况下进行查询,所以我想知道在应用程序启动时是否只进行一次同步是一个好主意 . NodeJs开发人员如何工作?
在这个例子中,我可以做到两件事:
User.sync().then(function () {
return User.create({
firstName: 'John',
lastName: 'Hancock',
locale: 'en'
});
});
User.create({
firstName: 'John',
lastName: 'Hancock',
locale: 'en'
});
不同之处在于,在第二种情况下,我不在承诺链中,因此我不能在不创建自己的承诺的情况下执行依赖于用户创建的任务 .
谢谢 ;)
1 回答
.sync()
方法在数据库中创建缺少的表 .见:http://docs.sequelizejs.com/en/v3/docs/schema/#syncing
我想它包含在示例中,以确保即使您不必手动运行
create table
它们也能正常工作 .对于通用代码,我不会这样做,特别是在 生产环境 中,因为您通常不希望代码以静默方式更改数据库模式,您通常希望自己控制进程 .
但是对于开发来说,在更改模型时不必运行任何db迁移脚本可能很有用,尽管我不希望它每次都能运行 .