Модель Sails Waterline - атрибут, проанализированный как строка для столбца postgres bigint - PullRequest
0 голосов
/ 04 апреля 2019

Я использую Sails вместе с Waterline ORM для 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 как число, поэтому его необходимо преобразовать в строку.

1 Ответ

0 голосов
/ 05 апреля 2019

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

attributes: {
  [...]
  reach: {
    type: 'ref',
    columnType: 'bigint',
    isNumber: true,
    defaultsTo: 0
  },
  [...]
}
...