【问题标题】:Updating a column in two associated tables at once using Sequelize使用 Sequelize 一次更新两个关联表中的列
【发布时间】:2021-03-16 02:16:44
【问题描述】:

我一直在兜圈子。我学到了很多东西,除了我想做的一件事。

我有两个表,Projects 和 Tickets,我试图确保在更新 Project 的标题时,所有关联票证中的项目名称也会更新。

我是续集的新手,对 Postgres 了解不多。我了解关联、外键等,但缺少一块拼图。我找不到使用 Sequelise 实现我想要做的事情的方法,是时候寻求帮助了。

我的模型如下(我遗漏了我的问题不需要的属性)

 const Project = db.define('project', {
    title: {
        type: Sequelize.STRING
    },
    description: {
        type: Sequelize.STRING
    }
});

const Ticket = db.define('ticket', {
    title: {
        type: Sequelize.STRING
    },
    project: {
        type: Sequelize.STRING
    }
});

如何在Project模型中“title”列发生变化时自动更新Ticket“project”列?

提前非常感谢您 会

【问题讨论】:

    标签: node.js postgresql sequelize.js


    【解决方案1】:

    在你 x.model.js 中,你需要输入以下内容:

    // In my case
    Users.associate = function (models) {
      this.hasMany(
        models.get('projects', { as: 'projects', onUpdate: 'CASCADE' })
      );
      return this;
    };
    

    然后在您的其他模型中:

    // In my case
    Projects.associate = function (models) {
      this.belongsTo(models.get('users'), {
        foreignKey: 'userId',
        onUpdate: 'CASCADE',
      });
      return this;
    };
    

    最后你需要同步你的数据库:

    db.sync();
    

    【讨论】:

      猜你喜欢
      • 2019-04-14
      • 1970-01-01
      • 2017-10-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-23
      • 1970-01-01
      相关资源
      最近更新 更多