Ответ 1
Как упоминается в документации, используйте:
Sequelize.STRING(32)
Я хочу определить длину типа данных в sequelize. Есть мой исходный код:
var Profile = sequelize.define('profile', {
public_id: Sequelize.STRING,
label: Sequelize.STRING
})
Создает профили таблицы с public_id с типом данных varchar (255).
Я хотел бы определить public_id с varchar (32).
Я искал в документе и стеке, но не смог найти ответа...
Как я могу это сделать?
Как упоминается в документации, используйте:
Sequelize.STRING(32)
Во-первых, я думаю, вам нужно немного переосмыслить свой дизайн. Основной момент заключается в том, что ограничения длины должны быть значимыми, а не просто для экономии места. PostgreSQL не хранит "A":: varchar (10) иначе, чем текст "A":: (они сохраняются как текстовые строки переменной длины, только до тех пор, пока значение сохраняется, а также спецификатор длины и некоторые другие метаданные), поэтому вы должны использовать самый длинный размер, который может работать для вас, и использовать длину для существенного обеспечения, а не для экономии места. Когда вы сомневаетесь, не сдерживайте. Когда вам нужно убедиться, что он подходит на ярлыке рассылки, ограничьте его соответствующим образом.
Во-вторых, Данкон ответил выше:
var Profile = sequelize.define('PublicID', {
public_id: {
validate: { len: [0,32] })
заключается в том, как вы добавляете такое принудительное выполнение в интерфейс. Опять-таки, такое принуждение должно основываться на том, что вам известно, а не только на том, что кажется хорошей идеей в то время, и в то время как вообще легче ослабить ограничения, чем затянуть их, для длины строки, это действительно не требует делать вещи по-другому.
Как и для использования в других приложениях, вы, вероятно, захотите найти информацию об ограничениях в системных каталогах, что приведет вас к определенной территории.