簡體   English   中英

為多個關系表續集js orm seeder

[英]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
        }]);
    });
}
  • 續集版本:4.x
  • Postgres版本:11.x

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM