Javascript Sequelize js orm播种器用于多个关系表

Javascript Sequelize js orm播种器用于多个关系表,javascript,node.js,postgresql,seed,sequelize-cli,Javascript,Node.js,Postgresql,Seed,Sequelize Cli,我将为帖子的初始数据加载对seed进行续集。我可以通过创建seedfile.js来为多个表进行续集。但是我无法自动处理表之间的关系 // user_seeds.js up: function (queryInterface, Sequelize) { return queryInterface.bulkInsert(table, [{ uid: 1, //primary key autogenerated name: 'John doe',

我将为帖子的初始数据加载对seed进行续集。我可以通过创建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
  • 博士后版本:11.x

为此,您必须使用一台播种机,同时使用
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
  • 博士后版本:11.x

重要提示:返回:true仅适用于PostGreSQLdatabases@Roel我已经在用Postgres了。我已经编辑了我的问题,添加了Sequelize和Postgres的版本。注意:returning:true仅适用于PostGreSQLdatabases@Roel我已经在用Postgres了。我已经编辑了我的问题,添加了Sequelize和Postgres的版本。