来自 PostgreSQL 错误的环回模型发现
Loopback Model discovery from PostgreSQL error
我目前正在构建一个环回项目,我需要在 PostgreSQL 数据库中发现现有数据来制作我的模型,我已经按照文档中的教程成功创建了模型:https://loopback.io/doc/en/lb3/Discovering-models-from-relational-databases.html#discover-and-save-model-definitions,但是当我对任何模型使用 运行 GET 方法时,我收到一条错误消息
relation "public.acl" does not exist
任何人都可以帮我解决这个问题,在此先感谢。
您已告知 loopback 使用您的数据库进行身份验证。 Loopback 要求 table 来验证每个不存在的请求。这与自动迁移无关。以下是您可以轻松创建所需的 table 的方法。
Create server/create-lb-tables.js file with the following:
var server = require('./server');
var ds = server.dataSources.MYDATABASE;
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();
});
Run the script manually:
$ cd server
$ node create-lb-tables.js
谢谢@Marvin,我通过 运行 ./server/boot/migrateTables.js 中的这个自动更新脚本解决了这个问题:
'use strict';
module.exports = migrateTables;
function migrateTables(server) {
var storage = server.datasources.db;
storage.autoupdate();
}
我目前正在构建一个环回项目,我需要在 PostgreSQL 数据库中发现现有数据来制作我的模型,我已经按照文档中的教程成功创建了模型:https://loopback.io/doc/en/lb3/Discovering-models-from-relational-databases.html#discover-and-save-model-definitions,但是当我对任何模型使用 运行 GET 方法时,我收到一条错误消息
relation "public.acl" does not exist
任何人都可以帮我解决这个问题,在此先感谢。
您已告知 loopback 使用您的数据库进行身份验证。 Loopback 要求 table 来验证每个不存在的请求。这与自动迁移无关。以下是您可以轻松创建所需的 table 的方法。
Create server/create-lb-tables.js file with the following:
var server = require('./server');
var ds = server.dataSources.MYDATABASE;
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();
});
Run the script manually:
$ cd server
$ node create-lb-tables.js
谢谢@Marvin,我通过 运行 ./server/boot/migrateTables.js 中的这个自动更新脚本解决了这个问题:
'use strict';
module.exports = migrateTables;
function migrateTables(server) {
var storage = server.datasources.db;
storage.autoupdate();
}