Укажите параметры длины для атрибутов в Waterline ORM

Как в Waterline мы можем указать типы, скажем, DECIMAL(10,2) для валюты? Я вижу, что мы можем дать ему десятичный тип, но при этом будет использоваться информация о длине по умолчанию - как мы ограничиваем размер полей? Я понимаю, что некоторые базы данных не поддерживают длины и т. д., но это, конечно же, не означает, что мы не можем разрешить указывать их для тех, которые поддерживают.


person Richard Tagger    schedule 27.11.2013    source источник


Ответы (1)


Вы можете ограничить размер полей в целом, используя «размер», например:

     attributes: {
       name: {
          type: 'string',
          size: 255
       }
     }

И это отлично работает для строк .... Не могу говорить о других адаптерах, но я предполагаю, что у них будет такая же проблема, но с адаптером паруса-mysql нет простого способа сделать это, насколько я могу видеть.

Просто взгляните на паруса-mysql/lib/sql.js (функция sqlTypeCast()) и посмотрите, что они делают для строк по сравнению с тем, что они делают для чисел с плавающей запятой.

Вы всегда можете внедрить свой адаптер, внедрить пользовательское правило или изменить БД вручную, если вам нужно, чтобы это отражалось в схеме.

Надеюсь, это поможет :)

person rei    schedule 04.02.2014