我们目前正在尝试编写数据样本创建脚本,以便将一些数据插入到我们的数据库中以测试API。我们有一些不通过另一个模型的多对多关系,因此loopback生成关联表及其键(实体1 fk,实体2 fk)。
我们的示例数据存储在JSON文件中,我们稍后加载它们并将它们传递给数据源自动引用函数。
我们遇到的问题是数据源无法迁移存储在关联表中的数据(即使它们存在于数据库中),因为它们不是正确的Loopback模型。
例如,获取实体Customer和CustomerGroup。客户可以属于多个CustomerGroup,而CustomerGroup可以拥有多个客户,因此以下JSON将用于由关联产生的CustomerGroupCustomer表:
[
{"CustomerGroupId": "1", "CustomerId": "1"},
{"CustomerGroupId": "2", "CustomerId": "2"},
{"CustomerGroupId": "1", "CustomerId": "3"}
]
有没有办法使用默认方法迁移此数据,还是我们应该寻找解决方法?
答案 0 :(得分:0)
所以我已经明白了!我之前使用此函数来自动发表我的表:
function automigrate(connection, table, data) {
app.models[table].create(data, function(err, models) {
if (err) throw err; console.log('|- ' + table);
});
}
事实证明,app对象不知道数据源生成的多对多表,而数据源却有。所以你需要做的就是从数据源对象而不是app中检索模型:
function automigrate(connection, table, data) {
connection.adapter._models[table].model.create(data, function(err, models) {
if (err) throw err; console.log('|- ' + table);
});
}