我想在sequelize中定义数据类型的长度。 有我的源代码:
var Profile = sequelize.define('profile', {
public_id: Sequelize.STRING,
label: Sequelize.STRING
})
它使用带有数据类型varchar(255)的public_id创建表概要文件。
我想用varchar(32)定义一个public_id。
我在doc和堆栈上搜索但找不到任何答案......
我该怎么办呢?
答案 0 :(得分:43)
如documentation中所述,请使用:
Sequelize.STRING(32)
答案 1 :(得分:5)
首先,我认为您需要重新考虑一下您的设计。基本点是长度约束应该是有意义的,而不仅仅是为了节省空间。 PostgreSQL不存储'A':: varchar(10)与'A':: text(两者都存储为可变长度文本字符串,只要存储的值,以及长度说明符和其他一些存储)元数据),因此您应该使用可以为您工作的最长大小,并使用长度进行实质性实施而不是节省空间。如有疑问,请不要约束。当您需要确保它适合邮寄标签时,请适当约束。
其次Dankohn的答案如上:
var Profile = sequelize.define('PublicID', {
public_id: {
validate: { len: [0,32] })
然后您将如何将此类强制执行添加到前端。同样,这样的强制执行应该基于你所知道你需要的东西,而不仅仅是当时看起来好主意的东西,虽然通常更容易放松约束而不是收紧它们,但是对于字符串长度来说,它真的是一个明智的选择。以另一种方式做事。
至于在其他应用程序中使用它,您可能希望在系统目录中查找约束信息,这会使您进入某种高级领域。