我安装了postgresql,设置了一个新用户,并用我需要的表创建了一个数据库。我还安装了环回并设置了一个API服务器。通过loopback-connector-postgresql连接API和数据库。当我转到localhost:3000/explorer并尝试发出get请求时,我会得到一个错误"message": "relation "public.acl" does not exist"
。我试图搜索这个错误,但没有成功,我是Loopback JS的新手。以下是完整的错误:
{
"error": {
"statusCode": 500,
"name": "error",
"message": "relation "public.acl" does not exist",
"length": 109,
"severity": "ERROR",
"code": "42P01",
"position": "93",
"file": "parse_relation.c",
"line": "1159",
"routine": "parserOpenTable",
"stack": "error: relation "public.acl" does not existn at Connection.parseE (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:553:11)n at Connection.parseMessage (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:378:19)n at Socket.<anonymous> (C:\Users\Adomas\Documents\ActualDocs\Projects\ReminderApp\node_modules\pg\lib\connection.js:119:22)n at emitOne (events.js:116:13)n at Socket.emit (events.js:211:7)n at addChunk (_stream_readable.js:263:12)n at readableAddChunk (_stream_readable.js:250:11)n at Socket.Readable.push (_stream_readable.js:208:10)n at TCP.onread (net.js:597:20)"
}
}
我认为问题是因为您无法为环回的内置模型创建数据库表。ACL就是其中之一。
你可以按照这个链接上的说明
复制粘贴文本在这里,这样你就很容易找到
要为LoopBack内置模型创建表,请执行以下过程:
遵循将模型附加到数据源中的基本过程从内存中的数据源更改为您想要的数据库使用
使用以下内容创建server/Create-lb-tables.js文件:
var server = require('./server'); var ds = server.dataSources.db; var lbTables = ['User', 'AccessToken', 'ACL', 'RoleMapping', 'Role']; ds.automigrate(lbTables, function(er) { if (er) throw er; console.log('Loopback tables [' + lbTables + '] created in ',ds.adapter.name); ds.disconnect(); });
手动运行脚本:
$ cd server $ node create-lb-tables.js