【问题标题】:Seeding data across Sequelize associations跨 Sequelize 关联播种数据
【发布时间】:2018-04-03 19:49:31
【问题描述】:

我正在使用 Sequelize(ORM 的新手),目前有三个表:card 和 tags,它们具有与第三个表 card_tags 建立的多对多关系。我的问题有两个:

  1. 如何跨关联播种数据?
  2. 如何创建跨关联数据库建立新数据的新数据(即 API 函数)?

请查看以下我的模型,如果我遗漏了任何内容,请告诉我。谢谢!

卡片模型:

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Card = sequelize.define('card', {
    title: {
      type: DataTypes.STRING,
      allowNull: false
    },
    link: {
      type: DataTypes.STRING,
      allowNull: false
    }
  });

  Card.associate = (models) => {
    Card.belongsToMany(models.tag, { through: 'card_tag', as: 'tag' });
  };

  return Card;
};

标签模型:

'use strict';
module.exports = (sequelize, DataTypes) => {
  const Tag = sequelize.define('tag', {
    title: {
      type: DataTypes.STRING,
      allowNull: false
    }
  });

  Tag.associate = (models) => {
    Tag.belongsToMany(models.card, { through: 'card_tag', as: 'card'});
  };

  return Tag;
};

card_tags 模型:

'use strict';
module.exports = function(sequelize, DataTypes) {
  const CardTag = sequelize.define('card_tag', {
    cardId: DataTypes.INTEGER,
    tagId: DataTypes.INTEGER
  });

  return CardTag;
};

【问题讨论】:

    标签: javascript database orm sequelize.js


    【解决方案1】:

    最简单快捷的方法是在每个关系中插入批量数据。 您可以为 bulkInsert 编写 sequelize 查询,记住首先创建每个外键的主键。

    您可以使用 faker npm 模块来生成随机数据。

    【讨论】:

      猜你喜欢
      • 2019-02-13
      • 2018-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 2018-04-13
      • 1970-01-01
      相关资源
      最近更新 更多