node.js - NodeJs 和 Sequelize : when to sync?

标签 node.js orm sequelize.js

我对 NodeJs 还很陌生,但我习惯于使用 PHP 来处理 ORM。每次部署站点时,我都会同步到数据库。 Ex 原则:schema:update --force 在 Symfony 中时。

但是,在 Sequelize 的文档中,他们给出了在每个查询之前完成同步的示例。这是一个好的做法吗?

我刚刚做了一个测试,可以在没有同步的情况下进行查询,所以我想知道在应用程序启动时仅进行一次同步是否是一个好主意。 NodeJs 开发人员习惯如何工作?

在此示例中,我可以同时执行以下两项操作:

User.sync().then(function () {
    return User.create({
        firstName: 'John',
        lastName: 'Hancock',
        locale: 'en'
    });
});

User.create({
    firstName: 'John',
    lastName: 'Hancock',
    locale: 'en'
});

不同之处在于,在第二种情况下,我不在 promise 链中,因此如果不自己创建 promise ,我就无法执行依赖于用户创建的任务。

谢谢;)

最佳答案

.sync() 方法在数据库中创建缺失的表。

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

我认为它包含在示例中是为了确保即使数据库中还没有这些表,它们也能正常工作,因此您不必运行 create table手动。

对于一般代码,尤其是在生产中,我不会这样做,因为您通常不希望代码默默地更改数据库架构,您通常希望自己控制该过程。

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

关于node.js - NodeJs 和 Sequelize : when to sync?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43319350/

相关文章:

node.js - Promise-IO seq,我做错了什么?

node.js - 使用 Express-Session 和 JWT

node.js - 如何在 sequelize 中定义 CHAR 数据类型

sequelize.js - Sequelize : don't return password

node.js - 通过 Node.js 服务器代表用户发布到 YouTube

javascript - 使用 node.js 和 pdf.js 将 pdf 转换为 html 文件

c# - PetaPOCO 和超过 4 个加入

PHP 数据库写入性能 PDO VS ORM

java - IBM Websphere JPA 配置 - 如何更新 persistence.xml

many-to-many - Sequelize Query - 根据多对多表和父表查找记录