Sequelize + sequelize cli 播种大量随机数据

Kar*_*ran 2 node.js sequelize.js sequelize-cli

在 node/sequelize cli 中为两个单独的表和连接表插入数据的最佳方法或任何方法是什么

即我有一个地址表,我添加了这个

const faker = require('faker');
const models = require('./server/db/sequelize/models');
const States = models.States;
const Addresses = models.Addresses;

module.exports = {
  up: (queryInterface) => {

  return Promise.all([
    for (let i = 0; i < 1000; i++) {
      Addresses.create({
        streetName: faker.address.streetAddress(),
        streetNameAlt: faker.address.streetAddress(),
        zipCode: faker.address.zipCode(),
        town: faker.address.county(),
        city: faker.address.city(),
        stateId: id,
        addressTypeId: 1,
        createdAt: faker.date.recent(),
        updatedAt: faker.date.recent(),
      });
    }
  },

  down: (queryInterface) => {
      return queryInterface.bulkDelete('Addresses', null, {});
  }
};
Run Code Online (Sandbox Code Playgroud)

然而,当我生成一个用户时,我想从我的地址表中选择一个随机地址作为 addressId 并创建一个联合记录

IE

const faker = require('faker');

const usersList = [];

for (let i = 0; i < 1000; i++) {
  const userObj = {
    email: faker.internet.email(),
    password: faker.internet.password(),
    name: faker.name.findName(),
    gender: 'Male',
    description: '',
    location: faker.address.streetAddress(),
    website: faker.internet.url(),
  };
  usersList.push(userObj);
}
Run Code Online (Sandbox Code Playgroud)

单独的代码

UserAddress.create({
userId: userId,
addressId: addressId
});
Run Code Online (Sandbox Code Playgroud)

小智 5

//Another way to do this, easy and fast with random data

'use strict';

var faker = require("faker");

module.exports = {

    up: (queryInterface, Sequelize) => {

        var newData = [];

        for (let i = 0; i < 10; i++) {
            const seedData = {
                country_name: faker.address.country(),
                country_code: faker.address.countryCode(),
                createdAt: new Date(),
                updatedAt: new Date()
            };
            newData.push(seedData);
        }

        return queryInterface.bulkInsert('Countries', newData);
    },

    down: (queryInterface, Sequelize) => {
        return queryInterface.bulkDelete('Countries', null, {});
    }
};
Run Code Online (Sandbox Code Playgroud)