Loopbackjs 环回自动迁移多对多

Loopbackjs 环回自动迁移多对多,loopbackjs,Loopbackjs,我们目前正在尝试编写一个数据示例创建脚本,以便将一些数据插入到数据库中以测试API。我们有一些不经过另一个模型的多对多关系,因此环回生成关联表及其键(实体1 fk、实体2 fk) 我们的示例数据存储在JSON文件中,稍后将加载这些文件并将其传递给datasource automigrate函数 我们遇到的问题是,数据源无法迁移存储在关联表中的数据(即使它们存在于数据库中),因为它们不作为适当的环回模型存在 例如,以实体Customer和CustomerGroup为例。一个客户可以属于多个Cust

我们目前正在尝试编写一个数据示例创建脚本,以便将一些数据插入到数据库中以测试API。我们有一些不经过另一个模型的多对多关系,因此环回生成关联表及其键(实体1 fk、实体2 fk)

我们的示例数据存储在JSON文件中,稍后将加载这些文件并将其传递给datasource automigrate函数

我们遇到的问题是,数据源无法迁移存储在关联表中的数据(即使它们存在于数据库中),因为它们不作为适当的环回模型存在

例如,以实体Customer和CustomerGroup为例。一个客户可以属于多个CustomerGroup,一个CustomerGroup可以有多个客户,因此以下JSON将用于关联产生的CustomerGroupCustomer表:

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

是否有一种方法可以使用默认方法迁移此数据,或者我们应该寻找一种解决方法?

所以我已经找到了!我以前使用此函数自动迁移表:

function automigrate(connection, table, data) {
    app.models[table].create(data, function(err, models) {
        if (err) throw err; console.log('|- ' + table);
    });
}
事实证明,app对象不知道数据源生成的多对多表,而数据源知道。因此,您只需从数据源对象而不是应用程序检索模型:

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