我有2个模型,项目和策略。两者都已经部署,并且在数据库(SQL)中创建了表。
我想在它们之间添加一个关系:项目-> hasOne->策略
我将其添加到Item.json:
"relations": {
"policy": {
"type": "hasOne",
"model": "Policy",
"foreignKey": "policyId"
}
这是Policy.json
"relations": {
"item": {
"type": "belongsTo",
"model": "Item",
"foreignKey": "policyId"
}
}
我认为,只要运行现有代码,autoregenerate
就会注意到存在的差异,并在表中添加了一个额外的列。相反,我得到了错误:
(node:216) UnhandledPromiseRejectionWarning: RequestError: Invalid column name 'policyId'.
at handleError (C:\Users\user\Project\MyProject\node_modules\loopback-connector-mssql\node_modules\mssql\lib\tedious.js:519:15)
我的意思是我错过了一些东西。当然,没有在Item表中创建任何额外的列。
我该怎么做才能启动要添加的列,还是需要手动执行此操作?
答案 0 :(得分:1)
如果您在policy
中创建item
的关系,则应在item
模型中包括该关系。
示例:
我们有两个模型
更改为UserFollower
和User
,如果我们需要在EndUser
中创建UserFollower
关系,那么我们将UserFollower
"properties": {
"followee": {
"type": "string",
"required": true
},
"follower": {
"type": "string",
"required": true
}
},
"relations": {
"enduser_followee": {
"type": "belongsTo",
"model": "EndUser",
"foreignKey": "followee"
}
}
根据您的要求,只需从
Policy.json
删除以下代码
"relations": {
"item": {
"type": "belongsTo",
"model": "Item",
"foreignKey": "policyId"
}
}