【问题标题】:Loopback 3 generating auto ids of type stringLoopback 3生成字符串类型的自动ID
【发布时间】:2019-12-29 02:45:06
【问题描述】:

我正在从使用 mongodb 迁移到环回 3 中的 postgres。当我使用 mongodb 时,自动生成的 ID 是字符串类型。在postgres 的情况下,自动生成的 id 是 number 类型。

我浏览了环回文档,上面写着:

生成的属性表示ID将由数据库自动生成。如果为 true,则连接器决定自动生成的密钥使用什么类型。对于 Oracle 或 MySQL 等关系型数据库,默认为 number。

因此,根据文档,对于关系数据库,默认 id 是 number 类型。如何将此默认值更改为 string 类型?

【问题讨论】:

    标签: loopbackjs loopback


    【解决方案1】:

    您可以使用 defaultFn 设置默认字符串 ID,这是我使用 uuidv4 生成随机字符串 ID 的示例代码

    "userId": {
            "type": "string",
            "id": true,
            "length": 36,
            "defaultFn": "uuidv4",
            "dataType": "char"
        }
    

    【讨论】:

      【解决方案2】:

      我认为您可以覆盖模型声明中的 id 属性。 只需检查您是否已将 idInjection 属性设置为 false。然后,声明一个名为“Id”的属性并设置所需的数据类型。 当然,您应该再次迁移模型。

      【讨论】:

      • 感谢 Petros,我知道这一点,我希望找到一个解决方案,我不必提供自己的唯一 ID,因为这需要花费大量精力来更改所有模型。无论如何,如果没有其他选择,我会继续这个。谢谢。
      猜你喜欢
      • 2022-11-11
      • 1970-01-01
      • 1970-01-01
      • 2015-04-10
      • 1970-01-01
      • 1970-01-01
      • 2017-07-05
      • 2021-01-16
      • 2015-08-28
      相关资源
      最近更新 更多