我成功从我的数据库中生成了所有模型。然后,我通过执行'node'来运行api。 我能够看到我的所有Web服务,但是当我尝试尝试服务时,有一个500错误告诉我没有ACL表。 所以,我打开了model-config.json,我看到之前没有创建过4个模型(User,AccessToken,ACL,RoleMapping和Role)。 我想知道我的数据库中是否存在所有这些模型。你知道我必须在每张桌子上放置哪些属性吗? 提前谢谢你。
Error:
{
"error": {
"name": "Error",
"status": 500,
"message": "ER_NO_SUCH_TABLE: Table 'sed.ACL' doesn't exist",
"code": "ER_NO_SUCH_TABLE",
"errno": 1146,
"sqlState": "42S02",
"index": 0,
"stack": "Error: ER_NO_SUCH_TABLE: Table 'sed.ACL' doesn't exist\n [...]"
}
}
答案 0 :(得分:4)
您需要自己迁移
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
答案 1 :(得分:0)
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();
});
这里
var ds = server.dataSources.db;
db
是您在 datasource.json 中使用的数据库名称。
数据库连接字符串:
{
"db": {
"name": "db",
"connector": "memory"
},
"inventory": {
"host": "localhost",
"port": 3306,
"url": "",
"database": "inventory",
"password": "root",
"name": "inventory",
"user": "root",
"connector": "mysql"
}
}
这是我的数据库名称:
"database": "inventory"
上标代码是
var server = require('./server');
var ds = server.dataSources.inventory;
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();
});
使用node filename.js
在目录中使用独立保存的文件拍摄此代码
而且有效。