跨 Sequelize 关联播种数据
Posted
技术标签:
【中文标题】跨 Sequelize 关联播种数据【英文标题】:Seeding data across Sequelize associations 【发布时间】:2018-04-03 19:49:31 【问题描述】:我正在使用 Sequelize(ORM 的新手),目前有三个表:card 和 tags,它们具有与第三个表 card_tags 建立的多对多关系。我的问题有两个:
-
如何跨关联播种数据?
如何创建跨关联数据库建立新数据的新数据(即 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;
;
【问题讨论】:
【参考方案1】:最简单快捷的方法是在每个关系中插入批量数据。 您可以为 bulkInsert 编写 sequelize 查询,记住首先创建每个外键的主键。
您可以使用 faker npm 模块来生成随机数据。
【讨论】:
以上是关于跨 Sequelize 关联播种数据的主要内容,如果未能解决你的问题,请参考以下文章