【问题标题】:Loopback autoupdate not creating custom models环回自动更新不创建自定义模型
【发布时间】:2018-12-29 01:45:09
【问题描述】:

我正在尝试使用 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);
    });
  };
});

脚本有效。如果数据库为空,它将为除testPost 之外的所有数据库创建表。这些是我的自定义模型,其他的都内置在环回中。

是因为模型类型吗? (尝试过 Model 和 PersistedModel)还是别的什么?我什至尝试不使用isActual 检查,但仍然没有。

【问题讨论】:

    标签: mysql node.js loopbackjs


    【解决方案1】:

    我建议您为内置模型和自定义模型保留两个单独的数组,并编写如下代码,这样您就可以知道问题出在哪里。另外,我认为 ds.autoupdate(null, fun..... 请按照以下代码进行操作

    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');
        });
      }
    });
    

    【讨论】:

    • 嗯,似乎可以工作,但有错误。请问userDefinedModelsbuiltInModels vars 是什么样子的?它们是像我上面发布的那样的数组还是其他什么?可以请更新该信息。问题是它现在为帖子创建数据库(我将Post 模型添加为数组项),但在builtInModels 中抛出错误,例如cannot read property 'settings' of undefinedloopback-connector 中。
    • 我已经按照要求用数组的变量更新了答案,我也得到了你的错误 - 你可能没有在 model-config.json 文件中定义 Post 和 test 模型,请验证相同
    • 提到 model-config.json 是好事。我重新创建了 LB 项目只是为了测试你的答案(我在尝试版本,直到我确定要开始工作)并且忘记在我的model-config.json 中为内置模型编辑dataSource。顺便说一句,您忘记了 builtInModels 数组中的User。无论如何,我添加了所有内容,0 错误,非常感谢!现在我需要决定是等待 LB4 ACL/Auth 还是使用旧的 LB3。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-09
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 2022-07-05
    • 2022-10-05
    相关资源
    最近更新 更多