【发布时间】:2018-11-06 02:14:19
【问题描述】:
当我按照说明如何通过 sequelize 在 psql 中创建更大的字段时,它仍然总是在创建表时推送VARCHAR(255)。 Sequelize Data Types
这是我的续集模型:
'use strict';
module.exports = (sequelize, DataTypes) => {
const Message = sequelize.define(
'Message',
{
message: {
type: DataTypes.STRING(2048),
allowNull: false,
validate: {
notEmpty: true
}
}
},
{}
);
Message.associate = function(models) {
// associations can be defined here
};
return Message;
};
DataTypes.TEXT 的结果相同。
这是它输出的 SQL:
CREATE TABLE IF NOT EXISTS "Messages" ("id" SERIAL , "message" VARCHAR(255) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, PRIMARY KEY ("id"));
当我尝试在此字段中插入一个大字符串(超过 255 个字符)时,出现以下错误:
error: value too long for type character varying(255)
我已经在项目中尝试了以下 github 问题,但它们似乎对我不起作用。 Relevant github issues.
感谢您的帮助。
规格:
psql (PostgreSQL) 10.5
节点v10.4.0.
"dependencies": {
"pg": "^7.5.0",
"pg-hstore": "^2.3.2",
"sequelize": "^4.39.0",
"sequelize-cli": "^5.2.0"
}
【问题讨论】:
标签: node.js postgresql sequelize.js