2017-09-05 16 views
1

postges.I에 대한 초기 데이터로드를 위해 seed를 sequelize 할 예정입니다. seedfile.js.But를 작성하여 여러 테이블에 대해 수행 할 수 있습니다. 중간에 관계를 처리 할 수 ​​없습니다. 자동으로 테이블.여러 개의 관계형 테이블에 대한 js orm 시더를 Sequelize

// user_seeds.js 
    up: function (queryInterface, Sequelize) { 
     return queryInterface.bulkInsert(table, [{ 
     uid: 1, //primary key autogenerated 
     name: 'John doe', 
     email: '[email protected]', 
     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: '[email protected]', 
     created_at, 
     updated_at 
     }, { 
     id: 2, 
     name: 'user', 
     created_at, 
     updated_at 
    }]); 

기본 키를 하드 코드없이 다른 테이블에 외래 키로 자동 전달하는 방법.

답변

0

따라서 하나의 시드러를 returning = true과 함께 사용해야합니다. 아래는 그 예입니다. 어떤 장소에서는 직접 queryInterface보다는 sequelize model을 사용해야 할 수도 있습니다.

// user_and_role_seeds.js 
up: function (queryInterface, Sequelize) { 
    return UserModel.bulkCreate([{ 
     uid: 1, // primary key autogenerated 
     name: 'John doe', 
     email: '[email protected]', 
     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: '[email protected]', 
      created_at, 
      updated_at 
     }, { 
      id: users[1].uid, 
      name: 'user', 
      created_at, 
      updated_at 
     }]); 
    }); 
}