我正在尝试使用Loopback(V3)创建应用程序,但遇到了奇怪的错误。
我正在尝试使用autoupdate()
创建Mysql表,但是对于我的自定义模型却不起作用。
这是我到目前为止尝试过的->
var server = require('../server');
var ds = server.dataSources.db;
var models = ['test','Post','User', 'AccessToken', 'ACL', 'RoleMapping', 'Role'];
ds.isActual(models, function(err, actual) {
if (!actual) {
ds.autoupdate(null, function(err,result){
console.log("DONE!");
console.log(result);
});
};
});
该脚本有效。如果数据库为空,它将为所有test
和Post
除外创建表。这些是我的自定义模型,其他则内置在环回中。
是因为型号类型吗? (尝试过的模型和PersistedModel)还是其他?我什至没有进行isActual
检查,还是一无所获。
答案 0 :(得分:1)
我建议您为内置模型和自定义模型保留两个单独的数组,并按如下所示编写代码,这样您就可以知道问题出在哪里。另外,我认为您的ds.autoupdate附近的代码有错误(空,有趣..... 请按照以下代码进行操作
var builtInModels = ['AccessToken', 'ACL', 'RoleMapping','Role'];
var userDefinedModels = ['Post','test'];
// migrate built-in models
dataSource.isActual(builtInModels, function (err, actual) {
if (!actual) {
dataSource.autoupdate(builtInModels, function (err, result) {
if(err) console.log(err);
console.log('Datasource Synced: Built in models');
});
}
});
// migrate userdefined models
dataSource.isActual(userDefinedModels, function (err, actual) {
if (!actual) {
dataSource.autoupdate(userDefinedModels, function (err, result) {
if (err) console.log(err);
console.log('Datasource Synced: User defined models');
});
}
});