gpt4 book ai didi

node.js - nodejs/环回 : defining relationships doesn't seem to be reflected on database?

转载 作者:太空宇宙 更新时间:2023-11-03 22:34:21 25 4
gpt4 key购买 nike

我正在创建一个带有strongloop环回的API。

我已经定义了我的模型,基本上一切都很好。但我在理解环回如何处理关系时遇到了问题。

并非我定义的所有关系似乎都真正反射(reflect)在数据库和界面中。

例如,我有一首模型歌曲,它

  • hasAndBelongsToMany 专辑
  • hasAndBelongsToMany 播放列表
  • hasAndBelongsToMany userplaylists
  • 属于艺术家

这里是/common/models/song.json

{
"name": "song",
"plural": "song",
"base": "PersistedModel",
"idInjection": true,
"properties": {
//some more properties of song
},
"validations": [],
"relations": {
"albums": {
"type": "hasAndBelongsToMany",
"model": "album",
"foreignKey": ""
},
"artist": {
"type": "belongsTo",
"model": "artist",
"foreignKey": ""
},
"playlists": {
"type": "hasAndBelongsToMany",
"model": "playlist",
"foreignKey": ""
},
"userplaylists": {
"type": "hasAndBelongsToMany",
"model": "userplaylist",
"foreignKey": ""
}
},
"acls": [],
"methods": []
}

但是当我查看生成的 postgresql 表时,我看到:

 title        | character varying(1024) | not null
id | integer | not null default nextval('song_id_seq'::regclass)
#some other properties of song
artistid | integer |

因此,位于 localhost:3000/explorer 的环回资源管理器中的界面显示:

post /song 
Response Class

Model
Model Schema

{
"title": "",
//some other properties of song
"id": 0,
"artistId": 0
}

问题:难道不应该还有歌曲、播放列表和 userplaylists 变量吗???或者我在 NoSql 世界里工作了太多,现在忘记了如何处理关系?

顺便说一句。我有一个迁移脚本,在将关系添加到模型时执行:

var path = require('path');
var app = require(path.resolve(__dirname, '../server'));

var dataSource = app.dataSources.cantoalegre_ps_DS;

dataSource.automigrate(function(err) {
if (err) {
console.log("Error migrating models: " + err);
}
else {
console.log("Successfully migrated models");
}
process.exit();
});

最佳答案

通常相关数据都有外键:

客户,订单属于客户,因此订单有一列包含客户 ID。

请注意,每次更改模型都必须通过自动更新脚本同步到数据库。

module.exports = function(app) {
var ds = app.dataSources.pg;
ds.isActual('mymodel', function(err, actual) {
if (!actual) {
ds.autoupdate('mymodel', function(err, result) {
console.log("AUTOUPDATE mymodel",err,result);
});
}
});
};

关于node.js - nodejs/环回 : defining relationships doesn't seem to be reflected on database?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31736614/

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