2017-02-03 33 views
0

目前,我们正在努力,以一些数据插入到我们的数据库来测试API来编写一个数据样本创建脚本。我们有几个不经过另一个模型的多对多关系,因此loopback生成关联表和它们的关键字(实体1 fk,实体2 fk)。回环automigrate多对多

我们的样本数据存储在JSON文件后来我们加载并传递给数据源automigrate功能。

我们已经跑进问题是数据源不能迁移存储在关联表中的数据(即使它们存在于数据库中),因为他们没有适当的模型回环存在。

例如,以实体客户和CustomerGroup。客户可以属于多个CustomerGroups和CustomerGroup可以有很多顾客,所以下面的JSON将用于从关联产生的CustomerGroupCustomer表:

[ 
    {"CustomerGroupId": "1", "CustomerId": "1"}, 
    {"CustomerGroupId": "2", "CustomerId": "2"}, 
    {"CustomerGroupId": "1", "CustomerId": "3"} 
] 

有没有一种方法使用默认的方法来迁移这些数据或者我们应该寻找解决方法?

回答

0

所以我想通了!我用这个功能之前automigrate我的表:

function automigrate(connection, table, data) { 
    app.models[table].create(data, function(err, models) { 
     if (err) throw err; console.log('|- ' + table); 
    }); 
} 

原来的应用程序对象不知道正在由数据源生成的多到多个表,而数据源一样。因此,所有你需要做的是从数据源对象,而不是应用程序检索模式:

function automigrate(connection, table, data) { 
    connection.adapter._models[table].model.create(data, function(err, models) { 
     if (err) throw err; console.log('|- ' + table); 
    }); 
}