gpt4 book ai didi

javascript - Sequelize js orm seeder 用于多个关系表

转载 作者:行者123 更新时间:2023-11-29 13:47:28 25 4
gpt4 key购买 nike

我打算为 postges 的初始数据加载续集种子。我可以通过创建 seedfile.js 为多个表执行此操作。但我无法自动处理表之间的关系。

 // user_seeds.js
up: function (queryInterface, Sequelize) {
return queryInterface.bulkInsert(table, [{
uid: 1, //primary key autogenerated
name: 'John doe',
email: 'john@doe.com',
created_at,
updated_at
}], {});

// roles_seeds.js
up: function (queryInterface, Sequelize) {
return queryInterface.bulkInsert(table, [{
uid: 1, //this should be comes from user table to this filed automatically after the creation of first record in user table
name: 'admin',
email: 'john@doe.com',
created_at,
updated_at
}, {
id: 2,
name: 'user',
created_at,
updated_at
}]);

如何在不硬编码的情况下自动将主键作为外键传递给另一个表。

最佳答案

您必须为此目的使用一个播种器以及 returning = true。下面是一个例子。您可能需要在某些地方使用 sequelize 模型而不是直接使用 queryInterface

// user_and_role_seeds.js
up: function (queryInterface, Sequelize) {
return UserModel.bulkCreate([{
uid: 1, // primary key autogenerated
name: 'John doe',
email: 'john@doe.com',
created_at,
updated_at
}], {returning: true}).then(function(users){
return queryInterface.bulkInsert(table, [{
uid: users[0].uid, // Here you use users items
name: 'admin',
email: 'john@doe.com',
created_at,
updated_at
}, {
id: users[1].uid,
name: 'user',
created_at,
updated_at
}]);
});
}
  • 续集版本:4.x
  • Postgres 版本:11.x

关于javascript - Sequelize js orm seeder 用于多个关系表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46047935/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com