I have 2 models, Courses and Videos, for example. And Courses has many Videos.
// course.js
\'use strict\';
module.exports = (sequelize, DataTypes) => {
co
The bulkInsert method returns a promise that is resolved with an ID of the first inserted item. We can use this information to insert videos. It can look like this:
function getId( firstId, items, needly ) {
for ( let i = 0; i < items.length; i++ ) {
if ( items[i].title === needly ) {
return firstId + i;
}
}
return null;
}
exports.up = async ( queryInterface, Sequelize ) => {
const courses = [
{
title: 'Course 1',
description: '...',
},
{
title: 'Course 2',
description: '...',
},
{
title: 'Course 3',
description: '...',
},
{
title: 'Course 4',
description: '...',
},
{
title: 'Course 5',
description: '...',
},
];
const firstId = await queryInterface.bulkInsert( 'courses', courses, {} );
const course2Id = getId( firstId, courses, 'Course 2' );
const course5Id = getId( firstId, courses, 'Course 5' );
return queryInterface.bulkInsert( 'categories', [
{ title: 'Video 1', description: '...', courseId: course2Id },
{ title: 'Video 2', description: '...', courseId: course2Id },
{ title: 'Video 3', description: '...', courseId: course5Id },
{ title: 'Video 4', description: '...', courseId: course5Id },
{ title: 'Video 5', description: '...', courseId: course5Id },
], {} );
};
exports.down = async ( queryInterface ) => {
await queryInterface.bulkDelete( 'videos', null, {} );
await queryInterface.bulkDelete( 'courses', null, {} );
}