在Sequelize协会中播种数据

时间:2018-04-03 19:49:32

标签: javascript database orm sequelize.js

我正在使用Sequelize(ORM&#39的新手),目前有三个表:卡片和标签,它们与第三个表card_tags建立了多对多关系。我的问题有两个:

  1. 如何跨关联播种数据?
  2. 如何创建跨关联数据库建立新数据的新数据(即API函数)?
  3. 请参阅下面的模型,如果我遗漏了任何内容,请告诉我。谢谢!

    卡片型号:

    '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 个答案:

答案 0 :(得分:1)

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

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