Секвенировать + сиквелизировать 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, {});
  }
};

Однако, когда я создаю пользователя, я хотел бы выбрать случайный адрес из моей таблицы адресов как addressId и создать совместную запись этого

i.e.

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);
}

Отдельный код

UserAddress.create({
userId: userId,
addressId: addressId
});

person Karan    schedule 12.01.2018    source источник


Ответы (2)


Вы можете просто запросить список адресов, поместить все идентификаторы в массив и выбрать один случайным образом.

const allAddress = models.Addresses.findAll();
const allIds = allAddress.map(x => x.id);
const rand = allIds[Math.floor(Math.random() * allIds.length)];

UserAddress.create({
  userId: userId,
  addressId: rand
});
person Michael McCabe    schedule 12.01.2018

person    schedule
comment
используя этот подход, я получаю эту ошибку: ERROR: Invalid value [Function: bound ] - person Pythonus; 16.12.2019