【问题标题】:Loopback: Unknown column 'realm' in 'field list'"环回:“字段列表”中的未知列“领域””
【发布时间】:2018-04-08 19:57:43
【问题描述】:

在过去的几个小时里,我一直在使用 LoopBack 来尝试使用名为 Client 的自定义模型来扩展 User 模型。

{
  "name": "Client",
  "base": "User",
  "plural": "Clients",
  "idInjection": true,
  "options": {
    "validateUpsert": true,
    "mysql": {
      "schema": "LOOPBACK",
      "table": "my_table_name"
    }
  },
  "properties": {
    "test": {
      "type": "string"
    }
  },
  "validations": [],
  "relations": {},
  "acls": [],
  "methods": {}
}

进行自动更新后,我在客户端表中没有看到除“test”之外的任何其他属性。 从资源管理器我尝试提交一个新用户,但我收到以下错误:

 "uniqueness.Error: ER_BAD_FIELD_ERROR: Unknown column 'realm' in 'field list'"

在谷歌上阅读所有可能的答案,但找不到解决方案。

【问题讨论】:

    标签: loopbackjs


    【解决方案1】:

    尝试在您的表“my_table_name”上手动创建一个名为“realm”的列并检查它是否修复。

    【讨论】:

    • 是的,但是在复制整个用户表之前,需要为用户名和密码添加另一列。不是一个很好的架构解决方案。
    • 我在考虑快速修复 :) 您可以尝试使用 PersistedModel 作为基础,然后在调用 User.create() 的 Client 类中创建一个挂钩
    • @apfz 你是如何解决这个问题的。我也遇到了同样的问题,我使用了自动迁移,我可以将用户表插入 mysql 并能够登录并获取访问令牌,即访问令牌,我在资源管理器中进行设置,但是当我从中获取请求时我扩展到 User 类的另一个模型像你一样抛出同样的错误
    【解决方案2】:

    您需要排除 User 中存在但 Model 中不存在的属性。我的扩展用户在“属性”属性之前拥有此属性:

    "excludeBaseProperties": [
        "realm",
        "password",
        "emailVerified",
        "verificationToken"
      ],
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-09
      • 2023-03-14
      • 2020-10-27
      • 2017-09-03
      相关资源
      最近更新 更多