【问题标题】:Sequelize - How to create multiple records in one seed fileSequelize - 如何在一个种子文件中创建多条记录
【发布时间】:2021-08-26 00:22:39
【问题描述】:

我有 2 个表,分别名为 questionnairesection

questionnaire => 1-to-N => section

我为添加问卷创建了一个种子文件。

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
    return queryInterface.bulkInsert('questionnaire', [
      {
        type: '1',
        description: 'first questionnaire',
        createdAt: new Date(),
        updatedAt: new Date()
      },
      {
        type: '2',
        description: 'second questionnaire',
        createdAt: new Date(),
        updatedAt: new Date()
      },
    ]);
  },

  down: async (queryInterface, Sequelize) => {
    return queryInterface.bulkDelete('questionnaire', null, {});
  }
};

由于不同的问卷有不同数量的部分,我想知道如何创建种子文件以同时创建多个部分。

例如,如果我想在问卷 1 中创建 5 个部分,在问卷 2 中创建 4 个部分,我应该怎么做?

20210608094246-create-section.js

'use strict';

module.exports = {
  up: async (queryInterface, Sequelize) => {
     // what to do here?
  },

  down: async (queryInterface, Sequelize) => {
  }
};

【问题讨论】:

    标签: mysql sql node.js sequelize.js


    【解决方案1】:

    你可以使用类似下面的东西:

    'use strict';
    
    const { Questionnaire, Section } = require('../models')();
    
    module.exports = {
      up: async (queryInterface, Sequelize) => {
    
        let q1 = await Questionnaire.create({ description: 'Questionnaire 1' });
    
        let q2 = await Questionnaire.create({ description: 'Questionnaire 2' });
    
        // Now you have access to the q1 + q2 instances where you can add your sections via the Questionnaire model associations.
         
      },
    
      down: async (queryInterface, Sequelize) => {
        
        await queryInterface.bulkDelete('questionnaire', null, {});
    
      }
    };
    

    这允许您使用标准模型实例方法来添加关联数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 2012-11-06
      • 2011-10-18
      相关资源
      最近更新 更多