NodeJs和Sequelize:什么时候同步?

时间:2017-04-10 09:21:35

标签: node.js orm sequelize.js

我对NodeJ很新,但我习惯使用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 个答案:

答案 0 :(得分:0)

s = "category: 33 ; id: AF45DA; category: 54 ; id: KF65YA; category: 60 ; id: XC36IA;" s = s.split(";") number_list = [] for ss in s: if "category" in ss: number_list.append(int(ss[10:-1])) 方法在数据库中创建缺少的表。

请参阅:http://docs.sequelizejs.com/en/v3/docs/schema/#syncing

我认为它包含在示例中,以确保它们即使在数据库中没有这些表时也能正常工作,因此您不必手动运行.sync()

我不会为通用代码执行此操作,尤其是在生产中,因为您通常不希望代码以静默方式更改数据库架构,您通常希望自己控制该过程。

但是对于开发来说,在更改模型时不必运行任何db迁移脚本可能会很有用,尽管我不希望它每次都能运行。