【问题标题】:Sails/Waterline autoPk removedSails/Waterline autoPk 已移除
【发布时间】:2019-02-26 11:04:54
【问题描述】:

由于在 Sails 1.0 中 autoPk 属性已被删除,我无法找到具有自定义主键属性的可用解决方案。考虑到这在 1.0 之前是完全可能的,我觉得完全不能接受。

根据我失去的时间,我能够推断出以下几点:

要么我必须删除我的自定义主键并用默认的id 替换它们,这意味着我必须进入我的代码并用 id 替换数百个各种自定义 PK 的实例,我真的不想这样做做...

或者我将不得不不将 id 属性放入 config/models.js 并将其复制到我没有自定义 PK 的所有模型中,这是我真的不想做的另一件事......

是否有任何正常解决方案,我们可以在 config/models.js 中定义默认行为,然后在我们需要的几个模型中简单地覆盖它?

【问题讨论】:

    标签: sails.js waterline


    【解决方案1】:

    虽然您说得对,但 Sails v1 不再包含 autoPK 选项。它已将其替换为类似的功能。

    首先,要回答您的问题,您可以通过添加primaryKey 选项来编辑模型。

    在这种情况下,用户的模型可能如下所示:

    ...
    primaryKey : 'userId',
    
    attributes: {
      // Replacement Primary Key
      userId: {
        type: 'string',
        required: true,
        unique: true
        ....
    

    如果不是为了所有代码更改,您可以通过添加columnName 来使用任何现有的表ID,例如:

    ...
    attributes: {
      id: {
        type: 'string',
        columnName: 'userId',
        required: true
    },
    ...
    

    有关这方面的更多信息,请参阅here

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-16
      • 2014-05-12
      • 2015-06-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多