Sails / Waterline autoPk已删除

问题描述 投票:1回答:1

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

从我失去的时间起,我能够推断出以下内容:

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

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

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

sails.js waterline
1个回答
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

© www.soinside.com 2019 - 2024. All rights reserved.