我如何定义Sequelize.STRING的长度?

我想在sequelize中定义一个数据types的长度。 有我的源代码:

var Profile = sequelize.define('profile', { public_id: Sequelize.STRING, label: Sequelize.STRING }) 

它创build一个带有数据types为varchar(255)的public_id的表格configuration文件。

我想用varchar(32)定义一个public_id。

我search了文档和堆栈,但找不到任何答案…

我该怎么做?

如文档中所述,使用:

 Sequelize.STRING(32) 

首先,我认为你需要重新考虑一下你的devise。 基本的观点是长度的限制应该是有意义的,而不是为了节省空间。 PostgreSQL不会将“A”:: varchar(10)存储为与“A”:: text不同的值(两者都作为可变长度的文本string存储,只要存储的值与长度说明符一起存储元数据),所以你应该使用最长的大小,可以为你工作,并使用长度的实质性执法,而不是节省空间。 如有疑问,请勿约束。 当您需要确保它适合邮寄标签时,请适当限制。

其次丹科的回答如下:

 var Profile = sequelize.define('PublicID', { public_id: { validate: { len: [0,32] }) 

是你如何将这种强制执行添加到前端。 同样,这种执法应该基于你知道你需要的东西,而不仅仅是当时看起来是个好主意的东西,虽然放松约束比放松约束容易一些,但是对于string长度来说,这实在是一件容易的事以其他方式做事。

至于在其他应用程序中使用这种方法,您可能需要在系统目录中查找约束信息,从而使您进入某种高级领域。