Могу ли я создать несколько взаимосвязанных записей в sequelize за один запрос
Есть 2 таблицы:
class User extends Model{}
Test1.init({
id:{type: DataTypes.INTEGER , autoIncrement: true, primaryKey: true, allowNull: false, unique:true},
name:{type: DataTypes.STRING},
job:{type: DataTypes.STRING}
},
{
sequelize,
modelName: 'User',
tableName: 'User',
timestamps:false})
class Post extends Model{}
Test2.init({
id:{type: DataTypes.INTEGER , autoIncrement: true, primaryKey: true, allowNull: false, unique:true},
user_id:{type: DataTypes.INTEGER, references:{model:'User', key:'id'}},
text:{type: DataTypes.STRING},
},
{
sequelize,
modelName: 'Post',
tableName: 'Post',
timestamps:false})
Связь обозначена через :
User.hasMany(Post, {foreignKey:'user_id'})
Post.belongsTo(User, {foreignKey:'id'})
Моя цель - добавить юзера и пост со взаимосвязью user_id / id
То есть, я хочу, чтобы получилась следующая запись:
User:
id | name | job
0 | Ivan | builder
Post:
id | user_id | text
0 | 0 | some text...
Могу ли я сделать это средствами Sequelize? Попробовал несколько вариантов, но все безуспешны
Ответы (1 шт):
Автор решения: Danil Apsadikov
→ Ссылка
Да, можно.
await userModel.create([{
name: user.name,
post: user.post
...
}], {
include: [{
model: postModel,
}]
})
Мы создаем одновременно User и Post. Переменная user содержит имя пользователя и пост, при этом пост содержит переменную text