如何在TypeORM连接PostgreSQL时将字段长度设置为MAX
问题排查与解决方案
错误原因
- TypeORM的
varchar类型字段的length参数默认仅接收数值类型的输入,你传入字符串"MAX"不符合参数校验规则,因此触发报错。 - 不同数据库的超长文本字段定义规则不统一,不存在所有数据库都通用的
varchar(MAX)语法,该语法仅SQL Server支持。
对应解决方案
如果你使用的是SQL Server数据库
直接将字段的type显式指定为varchar(max),不需要额外配置length参数即可:
@Column( { type: "varchar(max)" } ) WebhookUrl :string;
如果你使用的是MySQL、PostgreSQL等其他数据库
这类数据库没有varchar(MAX)的语法,如果你需要存储超长字符串,直接将字段类型设置为text即可,适配所有数据库的通用写法如下:
@Column( { type: "text" } ) WebhookUrl :string;
如果你使用的是PostgreSQL,也可以直接省略length参数,原生varchar类型默认即可支持超长字符串存储:
@Column( { type: "varchar" } ) WebhookUrl :string;
内容的提问来源于stack exchange,提问作者venalyn sudaria
相关产品推荐
相关产品推荐

