Паруса / Waterline autoPk удалены - PullRequest
0 голосов
/ 26 февраля 2019

Поскольку в Sails 1.0 атрибут autoPk был удален, я не могу найти пригодное для использования решение с использованием настраиваемого атрибута первичного ключа.Что, учитывая, что до версии 1.0 это было вполне возможно, я считаю совершенно неприемлемым.

Из потерянных часов я смог вывести следующее:

Либо мне нужно удалитьмои пользовательские первичные ключи и замените их на значение по умолчанию id, что означает, что мне придется пойти в мой код и заменить сотни экземпляров различных пользовательских PK с идентификатором, что я действительно не хочу делать ...

ИЛИ Мне не нужно помещать атрибут id в config / models.js и копировать его во все мои модели, где у меня нет пользовательского ПК, это еще одна вещь, которую я действительно не хочу делать ...

Существует ли какое-либо нормальное решение, в соответствии с которым мы можем определить поведение по умолчанию в config / models.js, а затем просто переопределить его в нескольких моделях, где нам нужно?

1 Ответ

0 голосов
/ 26 февраля 2019

Пока вы правы, в Sails v1 больше нет опции autoPK.Он заменил это аналогичной функциональностью.

Во-первых, чтобы ответить на ваш вопрос, вы можете отредактировать модель, добавив опцию primaryKey.

В этом случае модель для пользователяможет выглядеть так:

...
primaryKey : 'userId',

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

Если это не для всех изменений кода, вы можете использовать любой существующий идентификатор таблицы, добавив columnName, например:

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

Подробнее об этом см. здесь .

...