gpt4 book ai didi

node.js - loopback hasandbelongstomany 关系表不存在

转载 作者:搜寻专家 更新时间:2023-11-01 00:40:35 24 4
gpt4 key购买 nike

我定义了两个模型:“部分”模型:

{
"name": "part",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"name": {
"type": "string"
}
},
"validations": [],
"relations": {
"assemblies": {
"type": "hasAndBelongsToMany",
"model": "assembly",
"foreignKey": ""
}
},
"acls": [],
"methods": {}
}

和一个“组装”模型:

{
"name": "assembly",
"base": "PersistedModel",
"idInjection": true,
"options": {
"validateUpsert": true
},
"properties": {
"title": {
"type": "string",
"required": true
}
},
"validations": [],
"relations": {
"parts": {
"type": "hasAndBelongsToMany",
"model": "part"
}
},
"acls": [],
"methods": {}
}

两个模型都有 hasAndBelongToMany 关系。

在/server/boot/sample-model.js 中,我创建了这两个模型的一些实例:

module.exports =  function(app){
var Dev = app.dataSources.dev;
var Customer = app.models.customer;
var Order = app.models.order;
var Part = app.models.part;
var Assembly = app.models.assembly;

Dev.automigrate(['customer', 'order', 'assembly', 'part'], function(err) {
Customer.create([
{name: 'nicolas'},
{name: 'marie'},
{name: 'cyril'}
], function(err, customers){
Part.create([
{name: 'boulon'},
{name: 'ecrou'},
{name: 'cheville'},
], function(err, part){
//console.log(part[0])
Assembly.create([
{title: 'piece1'},
{title: 'piece2'},
{title: 'piece3'},
], function(err, assemblies){
//console.log(assemblies[0])
assemblies[0].parts.add(part[0], function(err){
if(err){
console.log(err)
}
})
})
})
});
});
}

但是

assemblies[0].parts.add(part[0], function(err){
if(err){
console.log(err)
}
})

以错误结束:

{ [Error: ER_NO_SUCH_TABLE: Table 'database_development.assemblypart' doesn't exist]
code: 'ER_NO_SUCH_TABLE',
errno: 1146,
sqlState: '42S02',
index: 0 }

为什么 loopback 不在我的数据库中创建 assemblypart 表?

最佳答案

我曾经遇到过同样的问题,经过数小时的努力(使用 postgres 连接器),我找到了几个解决方案。

这是最短的:

代替:

  Dev.automigrate(['customer', 'order', 'assembly', 'part'], function(err) {
// Your code here
});

尝试使用这个:

  Dev.automigrate()
.then(function(err) {
// Your code here
});

我不知道为什么,但是在第二种情况下创建了联结表。

你能试试这个并告诉我它是否适合你吗?如果不是,您能否提供一些我可以检查并尝试运行您的代码的地方?

关于node.js - loopback hasandbelongstomany 关系表不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com