Модель ватерлинии парусов - атрибут обрабатывается как строка для столбца postgres bigint

Я использую Sails вместе с его ORM Waterline для PostgreSQL. У меня проблема с параметром defaultsTo в определении атрибута модели.

Вот часть моего определения модели:

module.exports = {
  tableName: 'table',

  attributes: {
    [...]
    reach: {
      type: 'number',
      defaultsTo: 0,
    }
    [...]
  }
}

При использовании Model.create() я получаю это предупреждение консоли:

Warning: After transforming columnNames back to attribute names for model `model`,
 a record in the result has a value with an unexpected data type for property `reach`.
The corresponding attribute declares `type: 'number'` but instead
of that, the actual value is:
` ` `
'0'
` ` ` 

У меня есть несколько атрибутов типа number, поэтому это приводит к множеству предупреждений в моей консоли.

На данный момент я считаю, что это проблема с ватерлинией, но есть ли у вас обходной путь, чтобы избежать этого предупреждения?


Редактировать

Мое предупреждение появляется только для столбца Postgres «BIGINT». Я начинаю понимать, что JS не может обрабатывать postgres BIGINT как число, поэтому его необходимо преобразовать в строку.


person benomite    schedule 04.04.2019    source источник


Ответы (1)


Я нашел способ избежать предупреждения: установите атрибут по-другому:

attributes: {
  [...]
  reach: {
    type: 'ref',
    columnType: 'bigint',
    isNumber: true,
    defaultsTo: 0
  },
  [...]
}
person benomite    schedule 05.04.2019
comment
У меня тоже была эта проблема! Спасибо, попробую !! - person Noitidart; 24.09.2019
comment
Мне нужно создать поля времени, такие как поля createdAt и updatedAt, вы нашли способ добиться этого? - person Noitidart; 25.09.2019
comment
Я пробовал это, но число по-прежнему возвращается в виде строки :( - person Noitidart; 25.09.2019