[英]Sequelize js orm seeder for multiple relational table
我將為種子預先安排種子以進行初始數據加載。我可以通過創建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
}]);
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.