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